Невозможно опубликовать форму из-за ошибок ValidationSummary в полях формы, которые динамически скрываются с помощью javaScript.

Приложение ASP.NET MVC 3.

Я пытаюсь опубликовать форму, которая имеет некоторые динамические поля, которые появляются и исчезают с помощью JavaScript. Я использую IValidatableObject для выполнения проверки на стороне сервера в некоторых из этих динамических полей.

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

document.getElementById("schoolNotListed").style.display = "none";

и я пытаюсь опубликовать форму снова, она каждый раз выдает ошибку ValidationSummary. Элемент управления не достигает контроллера и не достигает функции Validate() в модели представления. Это некоторая проверка на стороне клиента, которая запрещает отправлять форму.

Есть ли способ, которым я могу пропустить или отключить эту проверку для этих полей, которые теперь скрыты через javaScript. Или я могу очистить ModelState через javaScript?

Если у вас есть какие-то предложения относительно того, как подойти к нему по-другому?

Спасибо

1 ответ

Клиентская библиотека проверки Javascript создает объект правил, который выполняет проверку

Когда вы их скрываете, попробуйте удалить валидатор

$('#schoolNotListed').hide().rules('remove', 'required')
$.validate.unobtrusive.parse()

Вторая строка говорит валидатору перестроить объект правил.

Этот вопрос может быть полезен: отключите обязательную проверку с помощью JavaScript

Другие вопросы по тегам