Bro*_*ato 17 validation asp.net-mvc jquery asp.net-mvc-3
我有以下观点:
@Html.LabelFor(m => m.CompanyPostCode)
@Html.TextBoxFor(m => m.CompanyPostCode)
@Html.LabelFor(m => m.CompanyCity)
@Html.TextBoxFor(m => m.CompanyCity)
@Html.HiddenFor(m => m.CompanyCityID)
Run Code Online (Sandbox Code Playgroud)
在我的视图模型中,所有属性都标记为[必需].然后问题是我的CompanyCityID(标记为必需)被隐藏,因此在视图中没有进行验证.如果我在视图中显示此属性,则验证已完成.
我的问题:是否可以在隐藏字段上执行验证?有解决方法吗?
验证隐藏字段似乎有点奇怪.原因是该字段是基于特殊规则从jQuery填充的.如果它没有填充,我知道视图上的某些内容无效.
谢谢.
Chu*_*ris 28
可能的原因可能是文件中存在ignore: ':hidden'
行jquery.validate.unobtrusive.js
.
在1.9.0版本之后,它是默认行为.您可以通过添加手动修复它
$.validator.setDefaults({ ignore: [] });
Run Code Online (Sandbox Code Playgroud)
正如你在这里看到的那样
另一个更改应该使隐藏元素的表单设置更容易,默认情况下现在忽略这些更改(选项"ignore"现在默认为":hidden").从理论上讲,这可能会打破现有的设置.在实际情况不太可能的情况下,您可以通过将ignore-option设置为"[]"(没有引号的方括号)来修复它.