【发布时间】:2011-10-17 07:15:37
【问题描述】:
我有一个隐藏字段,其验证如下
@Html.HiddenFor(m => m.Rating)
@Html.ValidationMessageFor(m => m.Rating)
Rating 属性应用了Range 验证器属性,范围为 1-5。这被放在一个带有提交按钮的表单中。
然后我得到了以下 jquery,它在某些用户事件的隐藏字段中设置值(基本上用户点击一些星星来评分)
$(".star").click(function(){
$("#Rating").val(2);
});
现在,如果我在没有设置隐藏字段的用户事件的情况下提交表单,则验证有效。错误消息显示正确,并且适用于所有客户端。
现在,在这种情况下,如果我点击星号,调用上面的 javascript 设置隐藏字段,验证错误消息不会消失。我可以在隐藏变量有一些有效值后提交表单。但我期望客户端验证应该有效。 (当隐藏变量设置了一些有效值时,验证错误应该消失)
最初我认为,jquery 验证会在一些特殊事件上被调用,所以我尝试自己引发 click、change、keyup、blur 和 focusout 事件,如下所示
$(".star").click(function(){
$("#Rating").val(2);
$("#Rating").change();
});
但这仍然不起作用。错误信息一旦出现,就不会消失。
【问题讨论】:
标签: asp.net-mvc-3 jquery-validate asp.net-mvc-validation