У меня есть форма поиска и сетка, основанная на нокауте, для получения результатов. Когда выполняется поиск, на 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 после удаления сообщения об ошибке.