【问题标题】:JQuery refresh a div on submitJQuery在提交时刷新一个div
【发布时间】:2012-05-06 23:49:23
【问题描述】:

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

我的脚本:

 <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>             

【问题讨论】:

  • 我相信您在实际代码中使用 '=' 代替 ':'。比如 var data = $('#name').val();

标签: jquery html web.py


【解决方案1】:

错误

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);
        }
    });
});

【讨论】:

    【解决方案2】:

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

    var data = $("#name").val();
    var datastr = 'name='+data;
    

    【讨论】:

      【解决方案3】:

      你试过 jQuery Load 方法吗?

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

      【讨论】:

      • 我真的不想使用其他功能,我想知道为什么这个功能不起作用:)。不过谢谢你的回答。
      • 哦,好的。看起来您使用 replaceWith 函数是错误的。 api.jquery.com/replaceWith 根据 jQuery 网站,您只提供了带有一个参数的 replaceWith 函数,即新内容。尝试从 replaceWith 中删除 $('#content')。希望这会有所帮助。
      【解决方案4】:

      我认为返回的值数据是你想要替换的(如果我是对的)..然后像这样使用..

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

      【讨论】:

        【解决方案5】:
        $("#form_div form").submit(function(e){
          e.preventDefault();
          var data = $("#name").val();
          $.post('/some/url/file.php',{name: data},function(data){
            $("#content").html(data);
          });
        });
        

        您应该处理表单提交事件并阻止它的默认操作。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-05-28
          • 2015-10-30
          • 2012-04-26
          • 2010-12-02
          • 2012-08-13
          • 1970-01-01
          • 1970-01-01
          • 2020-06-29
          相关资源
          最近更新 更多