Как повторно включить ненавязчивую проверку ASP.NET MVC на поле - PullRequest
1 голос
/ 19 октября 2011

У меня есть форма с ненавязчивой проверкой, и в большинстве случаев все работает хорошо.Однако бывают случаи, когда мне приходится отключать элемент select в форме, а затем иногда элемент снова включается (в основном, когда QA пытается все возможные обстоятельства, но все же).Когда это происходит, «обязательное» правило проверки для элемента select больше не работает.

Я попытался удалить и повторно добавить требуемое правило из коллекции правил элемента, но безрезультатно.Я попытался подключиться и вызвать расширение проверки, описанное здесь , которое также не работает.

Хотя я хотел бы знать основную причину проблемы, на данный момент я также открыт дляхаки и обходные пути.У меня такое ощущение, что это решенная проблема, но я не вижу ее в своих поисках.

Спасибо, Мэтью

ОБНОВЛЕНИЕ: Я испытываю желание просто выбрать ответ и не признаюсьглупая ошибка, но это не делает сеть лучше.То, что происходило, заключается в том, что параметры в элементе выбора являются динамическими в зависимости от другого поля.Отключение происходит, когда в опциях, основанных на этом другом поле, нет элементов, которые необходимо включить, и при повторном включении опций опции заполняются заново.Что я делал, так это помещал значение «0» в опцию по умолчанию, когда я воссоздал список опций, который удовлетворял «обязательному» правилу.Я изменил значение по умолчанию на пустую строку, и проблема исчезла.

Что такое протокол для решения вопроса, который не является тем, чем кажется?Должен ли я закрыть его?

Ответы [ 2 ]

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

Для повторного анализа ненавязчивых атрибутов проверки сначала необходимо очистить данные validator и unobtrusiveValidation, созданные при первом анализе атрибутов.Затем вы можете выполнить повторный анализ следующим образом:

$("form").removeData("validator");  
$("form").removeData("unobtrusiveValidation");  
$.validator.unobtrusive.parse("form");  
0 голосов
/ 19 октября 2011

Что произойдет, если вы позвоните

$.validator.unobtrusive.parse('#formId');

Если я правильно помню, это должно снова включить ненавязчивую проверку для любых элементов, которые имеют ненавязчивые атрибуты data-, которые являются потомками #formId.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...