У меня есть скрытое поле с проверкой для него, как показано ниже
@Html.HiddenFor(m => m.Rating)
@Html.ValidationMessageFor(m => m.Rating)
Рейтинг
свойство имеет атрибут валидатора Range
, применяемый с диапазоном от 1 до 5. Это помещается в форму с кнопкой отправки.
Затем у меня есть следующий jquery, который устанавливает значение в скрытом поле для некоторого пользовательского события (обычно пользователь нажимает на некоторые звезды, чтобы оценить)
$(".star").click(function(){
$("#Rating").val(2);
});
Теперь, если я отправлю форму без пользовательского события, которое устанавливает скрытое поле, валидация работает. Сообщения об ошибках отображаются правильно, и все работает на стороне клиента.
Теперь, в этой ситуации, если я нажму на звездочку, которая вызовет указанный выше javascript, a устанавливает скрытое поле, сообщение об ошибке проверки не исчезнет. Я могу отправить форму после того, как скрытая переменная получит допустимое значение. Но я ожидаю, что проверка на стороне клиента должна работать. (Когда скрытая переменная имеет какое-то допустимое значение, ошибка проверки должна исчезнуть)
Сначала я думал, что проверка jquery будет вызываться для некоторых особых событий, поэтому я попытался увеличить click, change, keyup, blur и focusout Сам события, как показано ниже
$(".star").click(function(){
$("#Rating").val(2);
$("#Rating").change();
});
Но это все еще не работает. Сообщения об ошибках один раз появились, никуда не денутся.