jqueryValidate作为验证插件可以很好的保证表单的正确性,但是如果有隐藏域的时候,这个隐藏域默认是不受到验证的,
但是很多情况下我们隐藏域也需要验证其正确性,这时候就需要配置jqueryValidate的设置了代码如下:
$("form").validate({
ignore: [],//关键配置在此
rules: {
Name: {
required: true
}
},
messages: {
Name: {
required: "姓名不能为空"
}
}
});
正常情况下这样配置就可以了,但是如果你在model上用注解(代码如下)的话仍然会失效
[Display(Name ="姓名"),Required(ErrorMessage ="姓名不能为空")]
public string Name{get;set;}
注意:
Razor(cshtml文件)中使用Model验证
@Html.HiddenFor(m => m.Name)
@Html.ValidationMessageFor(m => m.Name)
此时这个隐藏域依然不受到验证,原因是Razor中将这些验证配置写到了元素的标签中了
解决方法:
在js中添加如下代码
$(function () {
$("form").validate().settings.ignore = [];
})
总的来说就是配置jqueryValidatede的ignore,因为jqueryValidatede默认是忽略隐藏域的