#asp.net-mvc #jquery-validate
#asp.net-mvc #jquery-validate
Вопрос:
При использовании ненавязчивой проверки MVC3 пользователь изначально заполняет форму без какой-либо проверки. После отправки формы и возникновения ошибок проверки проверка выполняется в режиме реального времени, когда пользователь вводит данные и перемещается между полями. Возможно ли включить это поведение проверки в реальном времени перед отправкой формы?
Ответ №1:
Вы можете вызвать $form.valid()
, чтобы проверить всю форму при загрузке страницы, но затем они получают сводку проверки вверху (при условии, что вы ее включили) вместе с сообщениями проверки рядом с каждым вводом.
Как насчет проверки каждого поля по мере его изменения? Вы могли бы прикрепиться к событию изменения следующим образом: $fields.change(function (event) { $(event.target).valid() });
который будет выполняться valid()
в поле после его изменения. Вы, конечно, можете заменить другое событие для изменения, чтобы более точно соответствовать нужной вам функции.
Я не знаю официального способа точной имитации проверки после отправки…
Ответ №2:
Убедитесь, что для ClientValidationEnabled и UnobtrusiveJavaScriptEnable в вашем web.config установлено значение true.
<add key="ClientValidationEnabled" value="true" />
<add key="UnobtrusiveJavaScriptEnabled" value="true" />
Комментарии:
1. Спасибо, Питер. Да, оба они верны. Проверка клиента работает, я просто хочу, чтобы она проверялась в ответ на события ввода и расфокусировки, как только страница загружается, а не после первого нажатия кнопки отправки.
Ответ №3:
Попробуйте это:
var isValid = $('#formId').validate().form();