在jQuery /驗證文檔說,你可以使用invalidHandler當一個無效的形式提交給反應。
但是,由於MVC不顯眼的驗證實例化驗證本身,因此您必須稍後掛接此事件。
使用與jQuery/Validation完全相同的機制:您可以將您的代碼綁定到表單元素自定義事件'invalid-form.validate',女巫對應於invalidHandler!
$(document).ready(function() {
$('#myform').bind('invalid-form.validate',function(){
alert('invalid form!');
});
});
給您形式的ID使用:
@using (Html.BeginForm(null, null, FormMethod.Post, new { id = "myform" })) {
}
更新:
的另一種方式獲得現有的驗證對象調用的validate()在窗體上。如果這種形式驗證程序已經創建,它會被退回:
編輯:初始化後發生,改變.settings.invalidHandler
是爲時已晚綁定。因此,除非您重新啓動驗證程序,否則以下代碼段將不再有效。
$(document).ready(function() {
var existingValdiation = $("#myform").validate();
//the settings property corresponds to the options parameter
existingValdiation.settings.invalidHandler = function (form) {
alert('invalid form!');
};
// not recommended:
// re-init would bind settings.invalidHandler to 'invalid-form.validate'
// existingValdiation.init();
});
你究竟想要做什麼?我知道你想運行一些JavaScript,如果它失敗了,但是通過這樣做試圖達到什麼目的? –