Я пишу сайт MVC3 и использую ненавязчивую проверку JQuery для проверки своих форм. Я построил каркас формы в приложении, который показывает аккуратное всплывающее окно «справки» всякий раз, когда я нажимаю на поле формы. Все работает в этой области, и я доволен этим.
Проблема в том, что у меня не так много места для сообщений проверки полей формы, которые отображаются рядом с каждой формой, и если я помещу их под полями формы, изменение размеров будет некрасивым. Вот как выглядит типичное поле формы:
![Standard form field](https://i.stack.imgur.com/4hLrk.jpg)
Когда я нажимаю на поле, отображается следующее:
![Form field with help text shown](https://i.stack.imgur.com/m7wSz.jpg)
И когда происходит проверка, происходит следующее:
![Form field with validation shown](https://i.stack.imgur.com/2ukSM.jpg)
Мое решение состоит в том, чтобы просто скрыть текст справки при проверке (для этого я использую разделяемую функцию, назовем ее «hideDescription ()»). Каждая форма на сайте использует одну и ту же платформу, поэтому я хочу иметь возможность вызывать hideDescription () всякий раз, когда происходит ненавязчивая проверка, в любой момент.
Мой JavaScript разделен на несколько файлов, например:
/ Review / Create / - использует createReview.js
/ Review / Read / - использует readReview.js
Они оба также включают "shared.js". Я надеялся, что смогу расширить плагин ненавязчивой проверки jquery в файле shared.js и применить его к каждой форме на сайте за один раз ... но я немного растерялся. Это насколько я получил:
$("form").validate({
invalidHandler: function (form, validator) {
hideDescriptions();
}
});
Но я более чем осознаю, что это не сработает. Я предполагаю, что ненавязчивый валидатор присоединяет валидатор ко всем формам по умолчанию, видя, как будто я не должен присоединять его сам?
Можно ли как-нибудь расширить ненавязчивую проверку для выполнения общего обратного вызова, если форма недействительна?