JQuery проверки и группы - не работает должным образом, когда второе значение поля является правильным? - PullRequest
2 голосов
/ 14 марта 2012

У меня есть несколько полей, входящих в группу - demo .Когда пользователь вводит неправильные данные в первое поле ( Цифры (от 1 до 10) в моей демонстрации), появляется сообщение об ошибке.Но когда пользователь вводит правильные данные во второе поле ( Цифры (от 11 до 20) ), это сообщение исчезает, когда одно поле в группе все еще содержит неверные данные.Более того, класс ошибок удален (это не видно в демонстрационной версии).

Как я могу это исправить?

Ответы [ 2 ]

1 голос
/ 30 августа 2012

Известно, что эта проблема с группами при проверке jQuery.

Мое решение очень простое.

Прежде всего, вам необходимо добавить один и тот же класс для всех ваших входов в группу:

<input id="firstInGroup" class="groupBug">
<input id="secondInGroup" class="groupBug">
<input id="thirdInGroup" class="groupBug">

Затем высоздать триггер для этого класса

    $('.groupBug').change(function(){
    if($(this).siblings().valid()){
        //all items of the group are valid, do nothing or manually add valid class
    }else{
        //add the error class to the parent div, or whatever you want for the error
    }    

Это сработало для меня с парой выборов.

0 голосов
/ 14 марта 2012

Подтверждение, которое вы хотите, не должно быть сгруппированным ...

Что происходит с вашим кодом, так это то, что когда вы группируете валидацию, создается только один элемент ошибки, и, поскольку происходит валидация, по умолчанию onfocusout или onkeyup, каждый элемент, имеющий правило, отличное от 'required', тестируется на этих элементах. события.

Таким образом, когда проверка проверяет первое поле и обнаруживает ошибку, она показывает сообщение, но когда проверка проверяет второе и это правильно, оно удаляет сообщение об ошибке.

Вам нужно удалить группу из этих полей, поскольку они не являются проверкой группы, или отменить проверку, начиная с событий focusout или keyup

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