2012-04-26 100 views
1

我想在用户提交简单表单时刷新div。但我似乎无法找出为什么它不起作用。 (这是使用JQuery和Ajax我第一次)JQuery刷新提交div

我的脚本:

<script src="static/jquery.js"></script> 
     <script> 
       $('#submit_div').click(function(){ 
        var data: $("#name").val(); 
        var datastr: 'name='+data; 
        $.ajax{ 
         type: "POST", 
         url: $(this), 
         data: datastr, 
         success: function(data){ 
          $("#content").replaceWith($('#content'),$(data)); 
          } 
        } 
       }); 

     </script> 

我的HTML:

<div id="content"> 
      <div id="form_div"> 
      <form method="POST"> 
       <div id="form"> 
        <div id="name_div"> name <input type="text" id="name" name="name"/></div> 
        <div id="submit_div"> <button type="submit" id="submit" name="submit">submit</button></div> 
       </div> 
      </form> 
<div style="clear:both;"></div></div>    

+1

我相信你在你的实际代码中使用'='来代替':'。像var data = $('#name')。val(); – Misam 2012-04-26 08:56:13

回答

4

错误

var data: $("#name").val(); 
var datastr: 'name='+data; 
$.ajax{...} 
$("#content").replaceWith($('#content'),$(data)); 

固定

$('#submit_div').click(function(e){ 
    e.preventDefault();     
    var data = $("#name").val(); 
    var datastr='name='+data; 
    $.ajax({ 
     type: "POST", 
     url: $(this), 
     data: datastr, 
     success: function(data){ 
      $("#content").replaceWith(data); 
     } 
    }); 
}); 
1

你试过了jQuery Load方法?

http://api.jquery.com/load/

+0

我真的不想使用另一个功能,我想知道为什么这个不工作:)。但谢谢你的答案。 – 2012-04-26 08:57:26

+0

哦,好的。它看起来像你使用replaceWith函数是错误的。 http://api.jquery.com/replaceWith/ 据jQuery的网站,你只提供了replaceWith函数一个参数,它是新的内容。 尝试从replaceWith中删除$('#content')。希望这可以帮助。 – Paulund 2012-04-26 09:03:02

0

我想返回值数据为u要replacewith(如果我右M)的..然后使用这样的..

$("#content").replaceWith(data); 
2

。在你的代码中的语法错误。你应该写:

var data = $("#name").val(); 
var datastr = 'name='+data; 
0
$("#form_div form").submit(function(e){ 
    e.preventDefault(); 
    var data = $("#name").val(); 
    $.post('/some/url/file.php',{name: data},function(data){ 
    $("#content").html(data); 
    }); 
}); 

你应该处理表单提交事件,并防止默认操作它。