У меня была очень похожая проблема:
Пользователь нажимает на ссылку и открывает модальную форму
Пользователь заполняет неверные данные, а затем закрывает модальные
- В этот момент я хочу очистить все ошибки формы--
Пользователь открывает форму в свежем виде
Я сделал это на уровне поля, так как у меня есть только 2 поля из 5, из которых я хочу удалить ошибки. Вероятно, это можно сделать на уровне формы, однако я никогда не пробовал.
Как работает проверка на стороне клиента, так это то, что она хранит данные о фактическом элементе (это текстовый ввод), например:
$ ( '# Edit_event_title') данные ().
Когда страница загружается, это выглядит так:
$ ( '# Edit_event_title'). Данные ()
Объект
проверить: правда
прото : объект
Теперь, если вы введете неверные данные и оставите поле, используя ошибка по умолчанию, отображаемая , отобразятся некоторые поля ошибок. Это также обновляет ваш элемент к этому:
$ ( '# Edit_event_title'). Данные ()
Объект
изменено: ложь
действительный: false
проверить: правда
прото: объект
Теперь нам нужно удалить поле, помеченное как имеющее ошибку (и удалить текст ошибки), чтобы удалить 2 поля, добавленные в данные, и запустить функцию, встроенную в гем client_side_validations:
$('#edit_event_title').removeData("changed");
$('#edit_event_title').removeData("valid");
$('#edit_event_title').trigger('element:validate:pass')
Из того, что я могу сказать, настоящая библиотека "rails.validations.js" / gem_ client_side_validation не имеет каких-либо специальных функций для удаления ошибки по требованию (все выглядит как обратные вызовы).
Если у кого-то есть лучшее решение, пожалуйста, дайте мне знать. В противном случае приведенное выше позволит вам удалить client_side_validations по требованию.