Как сказано в документации по jQuery / Validation, вы можете использовать invalidHandler , чтобы реагировать при отправке неверной формы.
Но поскольку ненавязчивая проверка MVC создает саму Валидацию, вам нужно перехватить это событие позже.
Используя точно такой же механизм, что и jQuery / Validation: вы можете связать свой код с пользовательским событием элементов формы ' invalid-form.validate ', ведь оно соответствует invalidHandler!
$(document).ready(function() {
$('#myform').bind('invalid-form.validate',function(){
alert('invalid form!');
});
});
для указания формы используйте:
@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();
});