jQuery validate: проверка все еще срабатывает после удаления правила (для элемента select) - PullRequest
0 голосов
/ 30 мая 2011

Я динамически добавляю правила проверки при нажатии кнопки «Сохранить» - я делаю это для ввода текста и элемента select:

$ ("# my-txt"). Rules ("добавить", {требуется: true, сообщения: {обязательно: "текст требуется "}});

$ ("# my-ddl"). Rules ("добавить", {требуется: true, сообщения: {обязательно: "выбор требуется "}});

После добавления правил я вручную запускаю проверку (.valid()), а затем удаляю правила, выполняя .rules("remove") для элементов. Я делаю это, потому что я хочу, чтобы ошибки оставались до тех пор, пока пользователь снова не нажмет «сохранить» и проверка не будет запущена повторно.

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

Правило, похоже, на самом деле исчезло, потому что, если я вернусь и выберу значение по умолчанию для элемента select (value = ""), оно не покажет сообщение об ошибке.

Это меня озадачило - я пытаюсь найти способ заставить оба поля работать одинаково.

Любая помощь приветствуется!

Ответы [ 3 ]

1 голос
/ 30 мая 2011

Посмотрев на API jquery-validate снова, я вижу, что нет никакой опции для отображения ошибки, и разница в обработке отображения должна быть в коде плагина. Удачи в исправлении. :)

Еще один способ исправить это - вручную сохранить то, что jquery-validate добавляет в вашу DOM, удалить и повторно добавить его самостоятельно.

Наконец, я предпочитаю видеть, когда мой ввод действителен без необходимости повторного нажатия некоторых кнопок. Особенно в случае странных, сложных требований к паролю.

0 голосов
/ 12 декабря 2012

вызов

$('#formid').removeData('validator')

Это удалит подтверждение для формы

0 голосов
/ 04 июня 2011

Помимо удаления этого необходимого с помощью функции jquery.validation, вы также можете удалить класс «required» из вашего элемента.выполнив это, jquery.validation пропустит элемент, так как к нему не прикреплен обязательный класс.

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