ASP.NET MVC 3: сообщение проверки на стороне клиента остается после, если целевое поле отключено - PullRequest
1 голос
/ 25 октября 2011

У меня есть форма с полем (Поле A), которое должно быть пустым, если в раскрывающемся списке выбран вариант 1, и обязательно, если выбран вариант 2.У меня есть некоторый JavaScript, который очищает и отключает поле A, когда выбран вариант 1.

У меня есть атрибут RequiredIf Саймона Инса, примененный к полю A в модели, в зависимости от варианта 1, и он работает хорошо.Это не проблема.

Вот последовательность событий, которая вызывает проблему:

  1. Пользователь выбрал вариант 2 (поэтому поле A обязательно) и поле A пусто.
  2. Пользователь нажимает кнопку Сохранить.Сообщение проверки появляется в поле A и в сводке проверки.Все хорошо.
  3. Пользователь переходит к варианту 1. Поле A становится недоступным.
  4. Пользователь нажимает кнопку Сохранить.Сообщение проверки остается в поле A , но не появляется в Сводке проверки.

Из этого я заключаю, что проверка RequiredIf работает (а поле A проходит проверку), но старое сообщение проверки остается неизменным.Что я не хочу.

Все это, кстати, на стороне клиента.

Если поле не отключено, все работает как положено, но я бы хотел, чтобы оно было отключено, а не редактировалось, но "должно быть пустым".

Кроме очистки тега SPAN сообщения через js и jQuery, есть ли способ исправить это?

1 Ответ

1 голос
/ 25 октября 2011

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

$("#myDropDown").live("change", function() { // assumes dropdownlist has id of 'myDropDown'
    $("form").validate().form(); // form() causes error messages to update
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...