我如何确保只提交一个表单,同时使用jQuery验证?

时间:2011-04-18 17:39:21

标签: javascript jquery jquery-validate

我使用以下内容在表单提交后禁用表单上的所有提交按钮,以防止人们双击提交按钮等:

jQuery (function ($) {
    $('form').bind ('submit', function () {
        $(this).find ('button').attr ('disabled', 'disabled');
    });
});

我正在使用jquery.validate,如果发生验证错误,在提交表单时仍然会触发“提交”,因此用户会留下一个有错误的表单,并禁用提交按钮。

如何修改上面的代码以检测表单是否有jquery.validation错误?

3 个答案:

答案 0 :(得分:2)

$(function() {
    $('form').bind('submit', function() {
        $(this).find('input:submit').attr('disabled', true);
    });
});

您可以致电$("form").valid()

查看表单是否有效

答案 1 :(得分:0)

在提交按钮点击事件和return false;手动触发验证,如果出现错误则阻止POST

$('#submit').click(function(){ if(!validate()) return false; });

var validate = function() { if($('#txtFirst').val().trim() == '') return false;}
//etc...

答案 2 :(得分:0)

我会说你的更大问题是,“为什么jQuery Validate抛出错误?”解决这个问题,你不必太担心这个问题。理想情况下,您应该从jQuery Validate Submit Handler运行此类事务。

http://docs.jquery.com/Plugins/Validation/validate#options

验证运行后,它会调用submitHandler进行进一步处理。

$("#myForm").validate({
   submitHandler: function(form) {
    $(form).find ('button').attr ('disabled', 'disabled');
    $(form).submit();
   }
})