Я пишу сайт MVC3 и использую ненавязчивую проверку JQuery для проверки своих форм. Я создал структуру формы в приложении, которая показывает небольшое всплывающее окно справки всякий раз, когда я нажимаю на поле формы. В этой области все работает, и я доволен этим.
Проблема в том, что у меня не так много места для сообщений проверки поля формы, которые отображаются рядом с каждой формой, и если я помещу их под поля формы, изменение размера будет уродливым. Вот как выглядит типичное поле формы:
Когда я нажимаю на поле, отображается следующее:
И когда происходит проверка, происходит следующее:
Мое решение состоит в том, чтобы просто скрыть текст справки при проверке (для этого я использую общую функцию, назовем ее «hideDescriptions()»). Каждая форма на сайте использует одну и ту же структуру, поэтому я хочу иметь возможность вызывать hideDescriptions() всякий раз, когда происходит ненавязчивая проверка, в любой момент.
Мой javascript разделен на несколько файлов, например:
/Review/Create/ — использует createReview.js /Review/Read/ — использует readReview.js
Оба они также включают «shared.js». Я надеялся, что смогу расширить плагин ненавязчивой проверки jquery в файле shared.js и применить его ко всем формам на сайте за один раз... но я немного растерялся. Это насколько я понял:
$("form").validate({
invalidHandler: function (form, validator) {
hideDescriptions();
}
});
Но я более чем знаю, что это не сработает. Я предполагаю, что ненавязчивый валидатор по умолчанию прикрепляет валидатор ко всем формам, как будто мне не нужно его прикреплять самому?
Есть ли способ расширить ненавязчивую проверку, чтобы выполнить общий обратный вызов, если форма недействительна?