У меня есть форма поиска и сетка, основанная на нокауте, для получения результатов. Когда выполняется поиск, на asp.net mvc выполняется проверка на стороне сервера, и если состояние модели недопустимо, оно возвращает список ошибок модели через JSON.
У меня уже установлена проверка jQuery, а проверки по умолчанию (регулярное выражение, требуемое и т.д.) автоматически отображаются с использованием плагина jquery.unobtrusive
.
Я нашел $.validate().showErrors({prop:error})
как способ динамического отображения ошибок на основе json-ответа с сервера, но я думаю, что это неверный способ использовать его для отображения сообщений проверки сервера, так как после этого поле не может быть reset (class
не удаляется).
Мне нужен рабочий метод для установки и сброса ошибок на клиенте, если таковой существует в $.validate
.
Есть пример с моей проблемой в jsFiddle: http://jsfiddle.net/goranobradovic/ughCm/
Чтобы воспроизвести его, нажмите кнопку "Добавить ошибку", затем удалите ошибку, вход остается красным.
Это связано с тем, что функция showErrors не добавляет никаких правил, вызванных проверкой, поэтому поле остается "действительным", и оно не находится в списке elements()
, который используется в resetForm
для удаления input-validation-error
class
из недопустимые поля.
В принципе, я хочу простой способ добавить/удалить правило проверки с пользовательским сообщением, которое никогда не выполняется на клиенте, чтобы избежать отправки формы, когда я устанавливаю ошибку вручную и мне нужно удалить invalid
class
после удаления сообщения об ошибке.