jQuery Validation Plugin: Как я могу форсировать проверку на ранее действительных полях? - PullRequest
10 голосов
/ 26 сентября 2010

Я использую плагин jQuery Validation для проверки формы.Знаете ли вы, как принудительно выполнить повторную проверку на ранее успешных полях?

Я попробовал функцию .form, используя следующую проверку (это выполняется после того, как пользователь нажимает «отправить»):

if ($('#form1').validate().form()==false)
{
    formValid = false;
}

Однако, похоже, что приведенный выше код не повторяет проверку, поэтому поля, которые уже успешно проверены (то есть отмечены галочкой рядом с ними), не проверяются снова.

Причина желанияПовторите повторную проверку на ранее успешных полях, так как они полагаются на удаленную проверку, и результат (успех или неудача) может меняться в зависимости от того, как пользователь покинул поле и нажал кнопку «Отправить».(Это относится к полю 'username').

В случае, если это влияет на ответ, у меня есть несколько форм для проверки (для простоты в приведенном выше фрагменте кода я ссылаюсь только на '# form1').

Заранее спасибо за любые советы,

Роб

Ответы [ 2 ]

19 голосов
/ 26 сентября 2010

Состояние проверки для удаленных полей сохраняется через $.data() с элементом, который вы хотите проверить, так что вы можете использовать .removeData(), чтобы очистить это ...поэтому он вынужден повторной проверки:

$("#form1 :input").removeData("previousValue");
//now call .valid()

Это заставляет проверку, если значение изменилось (нам нужно повторно проверить), чтобы быть true:

//This code is in the validation plugin for remote:
var previous = this.previousValue(element);
if (previous.old !== value) { //this is normally false, since it hasn't changed

Если естьтолько определенные поля, требующие повторной проверки, например, как вы сказали имя пользователя, вы можете сузить селектор $("#form1 :input") только до тех полей, которые вы хотите, чтобы сделать его немного более эффективным.

1 голос
/ 04 марта 2012

Я наткнулся на этот ответ, когда рассматривал возможность использования ненавязчивой удаленной проверки jQuery.Это была не самая лучшая задокументированная тема в мире, и не обошлось без излишеств.Настолько, что я закончил писать в блоге о том, что я узнал.Ссылка здесь, если это полезно:

http://icanmakethiswork.blogspot.com/2012/03/jquery-unobtrusive-remote-validation.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...