2013-04-23 129 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