Проверка на стороне клиента не работает для скрытого поля в asp.net mvc 3

У меня есть скрытое поле с проверкой для него, как показано ниже

@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();
});

Но это все еще не работает. Сообщения об ошибках один раз появились, никуда не денутся.

9
задан Frederiek 17 October 2011 в 08:00
поделиться