2013-04-23 132 views
3

我想连接所有表单,以便在Jquery Validation发现没有错误之后并且在表单提交或提交之前显示一个加载器。MVC 4 unobtrusive jQuery验证之前提交

这是如何使用MVC 4不显眼的验证来完成的?

我曾尝试以下按这篇文章,How to add a 'submitHandler' function when using jQuery Unobtrusive Validation?

$("form").data("validator").settings.submitHandler = function (form) { alert('submit'); form.submit(); }; 

我把这个在onload部分,但这不火。我认为上述将适用于所有形式?

谢谢!

+0

没有。我希望能够做出某种回调。 – 2013-04-23 17:52:31

回答

6

请参阅the built-in setDefaults method的文档。你也不需要form.submit()行,因为插件已经处理了这一点。

$.validator.setDefaults({ 
    submitHandler: function (form) { 
     alert('valid form submitted'); // for demo 
     return false; // for demo, blocks default submit, needed with ajax too. 
    } 
}); 

DEMO:http://jsfiddle.net/W4jfY/


编辑

为适用于只是一种形式,而不是...

$('#myform').validate({ 
    // any other options for this form, 
    submitHandler: function (form) { 
     alert('valid form submitted'); // for demo 
     return false; // for demo, blocks default submit, needed with ajax too. 
    } 
}); 
+0

谢谢!这是有效的,但你确实需要form.submit(),因为没有它就无法工作。欣赏它! – 2013-04-23 20:15:22

+0

我有另一种形式在由ajax处理的同一页中。这似乎已经打破了这种形式。我可以以某种方式使这个条件? – 2013-04-23 20:22:52

+0

@JulianDormon,当然哦。只需将'submitHandler'选项放在一个表单上,而不是放在'setDefaults'方法中。 – Sparky 2013-04-23 20:27:59