Jquery验证插件在验证时阻止双重提交

Chr*_*nch 13 validation jquery

我在使用jquery验证插件:

http://bassistance.de/jquery-plugins/jquery-plugin-validation/

我想在验证通过时仅禁用提交按钮:

它试过了

$("#submit").click(function()
{
    $(this).attr("disabled", "disabled");
});
Run Code Online (Sandbox Code Playgroud)

但即使验证失败,这也会禁用提交按钮.有没有办法只在验证通过并发生提交事件时禁用提交?

Dem*_*cht 18

通过源代码查看,看起来您应该能够覆盖以下invalidHandler内容:

$("#form").validate({
    submitHandler: function(form) {
    // disable your button here
    form.submit();
   },
   invalidHandler: function() {
     // re-enable the button here as validation has failed
   }
});
Run Code Online (Sandbox Code Playgroud)

乍一看,这似乎是你想用validate插件做这个的方式,但遗憾的是我没有时间来调整它以确保它有效.

编辑:

这应该做的(我使用了一个带有fname测试名称的文本字段):

$('#frm').bind('invalid-form.validate', function(){
    // you can add extra validation handling here if you want to
});

$('#frm').validate({
    rules: {
        fname: "required"
    },
    submitHandler: function(form){
        $('form input[type=submit]').attr('disabled', 'disabled');
        form.submit();
    }
});
Run Code Online (Sandbox Code Playgroud)

submitHandler只有一次验证已通过打击.