Jqueryvalidation插件防止双重提交validation

我正在使用jqueryvalidation插件:

jQuery plugin: Validation

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

它试过了

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

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

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

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

乍一看,这似乎是你想要使用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(); } }); 

只有在validation通过后才会 submitHandler