Инициировать событие при наличии ошибок проверки?
Мне нужно добавить дескриптор к любому обстоятельству, когда проверка формы не выполняется.
Я читал этой, что объясняет, что я должен добавить обработчик следующим образом:
$('form').bind('invalid-form.validate', function () {
console.log('form is invalid!');
});
но это событие срабатывает только при попытке отправить форму.
Мне нужно обработать событие, которое запускается в любое время, когда форма после проверки (т. е. элемент теряет фокус и т. д.).
чего я пытаюсь достичь, так это большой формы (~50 полей), и это расщепленный в загрузки вкладки.
Я хочу, чтобы, когда есть какой-либо новый сбой проверки или успех, установите или очистите класс ошибки в заголовке вкладки, который содержит недопустимые/допустимые элементы. П. С. мой вопрос не о том, как установить эти классы в закладках. Я только хочу знать, какое событие(ы) обрабатывать, чтобы получать уведомления при каждом изменении состояния проверки во всей форме.
1 ответов
мне нужно добавить обработчик к любому обстоятельству, когда проверка формы не выполняется.
$('input, textarea, select').on('focusout keyup', function() {
if ($('form').valid()) {
// do something
}
});
Я хочу, чтобы при возникновении ошибки проверки в заголовке вкладки был установлен класс ошибки, содержащий недопустимые элементы.
Ну, это немного отличается от того, что вы изначально просили. (игнорировать первую половину моего ответа.)
использовать highlight
и unhighlight
параметры вместе с jQuery DOM обход, чтобы установить и отменить любой класс в DOM вы хотите. highlight
срабатывает, когда что-то недопустимо и unhighlight
срабатывает, когда он становится действительным. См.ответ в качестве примера.
использовать the .setDefaults()
метод чтобы установить эти параметры, так как вы используете unobtrusive-validation
плагин и не имеют прямого доступа к .validate()
метод.