【问题标题】:Why does my jquery ajax form submit once on first submit, twice on second submit...?为什么我的 jquery ajax 表单在第一次提交时提交一次,在第二次提交时提交两次......?
【发布时间】:2013-02-21 01:23:58
【问题描述】:

我有一个简单的 AJAX 表单,当我提交它时它可以正常工作。但是,如果我随后在同一个表单中输入新数据(不刷新页面),那么它会提交两次表单。如果我第三次这样做,那么它会提交三次表单,依此类推。为什么要这样做?这是我的代码:

$(document).ready(function(){
    $("#myForm").submit(function() {
        var myField = $('#myID).val();
        $.ajax({
            type: "POST",
            url: 'myFile.php',
            dataType: 'html',
            data: {myData:myField},
            success: function(data){
                alert(data);
            }
        });

        return false;
    });
});

【问题讨论】:

  • 您可以从您的真实代码中复制并粘贴代码,而不是输入摘录吗?

标签: ajax jquery


【解决方案1】:

即使我在开发 AJAX 登录表单时也遇到了同样的问题。经过几个小时的谷歌搜索,我找到了解决方案。希望对您有所帮助。

基本上,您必须在完成 ajax 请求后取消绑定表单提交操作的当前实例。 所以在 return false;

之前添加这一行
$("#myform").unbind('submit');

因此你的整个代码应该是这样的

$(document).ready(function(){ $("#myForm").submit(function() { var myField = $('#myID).val(); $.ajax({ type: "POST", url: 'myFile.php', dataType: 'html', data: {myData:myField}, success: function(data){ alert(data); } }); /* Add this line */ $("#myform").unbind('submit'); return false; }); });

【讨论】:

  • 见鬼是啊@Jack
【解决方案2】:

我遇到了同样的问题。

我在以下位置找到了解决方案: jquery : submitting a form twice

基本上是将 .submit() 添加到 Saurabh Mishra 答案:

$('#form1').unbind('submit').submit();

【讨论】:

    【解决方案3】:

    取消绑定表单可能会破坏您的 Ajax。我发现只要我先声明表格。

    $('#my_form').ajaxForm
    

    一切都按预期工作,并遵循标准协议。我刚刚花了一天时间在表单提交中寻找“缺少模板”的错误,因为我取消了表单的绑定。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-07-27
      • 1970-01-01
      • 2017-03-17
      • 1970-01-01
      • 1970-01-01
      • 2017-05-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多