Использование ненавязчивой проверки работает на отдельных элементах, но не на всей форме - PullRequest
0 голосов
/ 08 октября 2011

Использование Asp.Net MVC3 с ненавязчивой проверкой.У меня есть форма, которая имеет несколько полей ввода.Одно из полей довольно простое:

<input id="Name" class="valid" type="text" value="" name="Name" data-val-required="Enter your name." data-val-length-min="5" data-val-length-max="50" data-val-length="Enter a valid name." data-val="true">

У меня есть несколько js, которые проверяют форму и отправляют ее, только если проверка на стороне клиента проходит как в:

var $form = $('#contact_form');
var formAction = $form.attr('action');
var serialized = $form.serialize();

if ($form.validate().valid()) {...

ТеперьПоследняя строка всегда возвращает истину (да, у меня есть ненавязчивый включен).Однако, если я изменю последнюю строку на:

if ($form.validate().element('#Name')) { ...

Это прекрасно работает и возвращает false.У меня много полей, и я не хочу перебирать каждое из них, и меня смущает вопрос, почему при проверке всей формы она говорит «истина», но проверка каждого отдельного элемента возвращает «ложь» правильно.

То, что я пробовал: - повторная обработкаформа через ненавязчивый $ .validator.parse (... безрезультатно. Это не динамическая форма, которая отображается при загрузке страницы.

Примечание: я также проверил этот jquery (v1.6.2) jquery.validate.min.js (v1.8.1) и jquery.validate.unobtrusive.min.js загружаются в браузер.

1 Ответ

0 голосов
/ 08 октября 2011

Вам не нужно звонить .validate(), но напрямую .valid():

if ($form.valid()) {
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...