1

当我的表单提交时false,如果它不喜欢包含在field1and中的值,php 将返回field2。如果它确实喜欢这些字段,那么它将返回true. 如果用户提交表单并且 php 返回false,则会出现警报。关闭警报窗口后,如果用户立即在这些字段中输入新的(好的)数据并再次提交表单,那么表单会以某种方式提交两次。为什么?我怎样才能解决这个问题?

$("form#myForm").on('submit',function() 
{
    $.ajax(
    {
        type: "POST",
        url: 'myfile.php',
        dataType: 'html',
        data: 
        {
            field1:$("input[name=field1]").val(),
            field2:$("input[name=field2]").val()
        },
        success: function(data)
        {
            if(data == false) 
            {
                alert('hello world');
            } 
            else 
            {
                // stuff
            }
        }
    });
    return false;
});
4

3 回答 3

4

2014 年提出了同样的问题(jquery ajax 表单提交两次)。

e.preventDefault()它自己的按钮和锚链接工作,但在提交表单时对我不起作用(与上面 Nancy 的代码相同)。

我必须e.stopImmediatePropagation();在我的 ajax 帖子之前添加。这阻止了 ajax 调用被提交两次。

于 2015-06-01T17:52:22.283 回答
2

在下面,之前添加此代码return false

$('#myForm').unbind('submit');
 return false;
于 2013-11-29T13:24:36.353 回答
1

因为您正在执行 ajax 发布,所以您需要禁用默认提交按钮行为。请参阅http://api.jquery.com/event.preventDefault/

于 2013-02-09T02:24:40.327 回答