Невозможно опубликовать форму из-за ошибок 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