javascript - jQuery 验证提交表单两次

标签 javascript jquery jquery-validate

我正在使用 jQuery 验证器和 jQuery 1.8.3。由于某种原因,我的表单被提交了两次,这会导致错误。这是代码:

someNameSpace.myValidateFunction = function(){
    $('#myForm').validate({
        submitHandler: function(){
            mySubmitCallBackFunction();
        },
    });
    return false;
};

someNameSpace.myValidateFunction();
$(document).on('click', '#myFormSubmitButton', function(){
    $('#myForm').submit();
});

知道为什么表单要提交两次吗?表单按钮不是输入提交而是 <button>元素(在本例中需要)。

最佳答案

您的表单被提交了两次,因为:

  • 您调用 $('#myForm').submit()
  • 您单击提交按钮,这也会触发表单事件。 注意 :如果在表单中,点击时也会触发表单事件

所以我认为您必须在单击方法中添加一个return false,以防止在您单击提交按钮时提交表单。现在,只有 $('#myForm').submit(); 会提交表单:

someNameSpace.myValidateFunction = function(){
    $('#myForm').validate({
        submitHandler: function(){
            mySubmitCallBackFunction();
        },
    });
    return false;
};

someNameSpace.myValidateFunction();
$(document).on('click', '#myFormSubmitButton', function(){
    $('#myForm').submit();
    return false;
});

我想你也不需要添加这个:

$(document).on('click', '#myFormSubmitButton', function(){
    $('#myForm').submit();
    return false;
});

提交表单时将自动调用验证方法。

关于javascript - jQuery 验证提交表单两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23693658/

相关文章:

javascript - 'this' 对 item 的引用在 ie 中单击错误

javascript - 如何处理 NPM 包中的重复包?

javascript - Ember JS : Customizing adapter to include multiple parameters

javascript - 使用 val() 在 jquery 循环中设置 html 字符串的值

javascript - 如何使 Ckeditor richcombo 像 html datalist 正常搜索一样可搜索

jquery - pushState() 和 popState() : manipulating browsers' history

javascript - 如何在 JavaScript 中替换/\with\

jQuery 验证 - form.valid() 始终返回 true

jquery验证: prevent form submit

jquery - 无法使用 id 验证 jQuery 多选下拉列表