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

时间:2011-05-13 19:41:14

标签: jquery validation

我在:

使用jquery验证插件

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

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

尝试了

$("#submit").click(function()
{
    $(this).attr("disabled", "disabled");
});

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

1 个答案:

答案 0 :(得分:18)

仔细查看来源,看起来就像你应该能够覆盖invalidHandler一样:

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

乍一看,这似乎是你想用validate插件做这件事的方式,但遗憾的是我没有时间来调整它以使确定< / em>它有效。

修改:

这应该做的(我使用名为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();
    }
});

submitHandler一旦验证通过就点击。