2009-07-26 109 views
1

我正在写一些使用jQuery的功能,我通常处理页面刷新/表单提交。jQuery ajax问题

基本上我使用jQuery的ajax提交表单。

<html> 
<head> 
<script type="text/javascript" src="js/jquery-1.3.2.js"></script> 

<script type="text/javascript"> 

$(document).ready(function(){ 


    $("#show-comment-form").click(function(event){ 
     var ret = $.post("post.php", $("#comment-form").serialize(), "", "html"); 
     $("#theComment").html("<strong>" + ret +"</strong>"); 
    }); 
}); 


</script> 

</head> 
<body> 
Testing Stuff 
<br /><a href="#" id="show-comment-form">Insert New Message</a><br /> 

    <div id="comment-form"> 
     <form name="form" id="form"> 
      <span>Enter Your Question Here</span> 
      <textarea id="comment" name="comment"></textarea> 
     </form> 

    </div> 

    <p id="theComment"> 

    avsailable 
    </p>  


</body> 

</html> 

返回的对象是一个XMLHttpRequest。我是否操纵这个对象,或者是我可能不需要的东西。

我的问题是我想让用户发布一个使用网页上的表单的回复,但是没有页面重新加载并在所有其他用户响应的开头预先添加html。表单所发布的页面打印出一些HTML,但我无法让该HTML显示在页面上,因为响应是一个XMLHttpRequest对象。我有点迷路。有人能指引我朝着正确的方向吗?

回答

3

您必须使用callback功能参数:

$("#show-comment-form").click(function(event){ 
    $.post("post.php", $("#comment-form").serialize(), function(ret){ 
     $("#theComment").html("<strong>" + ret +"</strong>"); 
    }, "html"); 
}); 

异步请求结束时,该函数将被执行,它的第一个参数是数据从返回服务器。

2

指定的函数作为第三参数和数据应在回调返回:

VAR RET = $。员额( “post.php中”,$( “#注释的形式”)连载( ),函数(data){(data).appendTo('body'); });

您不应该需要与XHR对象进行交互。欲了解更多信息:

http://docs.jquery.com/Ajax/jQuery.post