我正在阅读以下示例link关于在弹出菜单中显示部分视图。但我注意到在部分视图中,作者在视图的末尾使用以下代码: -
$("form").removeData("validator");
$("form").removeData("unobtrusiveValidation");
$.validator.unobtrusive.parse("form");
所以有人可以建议添加此代码的目的是什么?
答案 0 :(得分:6)
它从表单中删除了jQuery验证。以下是验证数据的参考。
var form = $(formSelector)
.removeData("validator") /* added by the raw jquery.validate plugin */
.removeData("unobtrusiveValidation");
/* added by the jquery unobtrusive plugin */
要特定于局部视图中的实现,您可以使用类似
的方法实现验证function ApplyValidation() {
$("form").removeData("validator");
$("form").removeData("unobtrusiveValidation");
$.validator.unobtrusive.parse("form");
}
答案 1 :(得分:3)
在不显眼的验证中,一旦验证器已应用于文档,将不会应用任何其他动态内容验证器(部分视图或jquery引发的html控件)。一旦我们重新加载验证器,它将使用JQuery库提供的规则实现将模型内定义的规则绑定,因此验证将无缝执行。
您拥有的另一个选项(而不是重新加载验证器)是按照here所示注入新规则。
使用jquery数据方法unobtrusiveValidation
访问表单的($(form).data('unobtrusiveValidation'))
数据,并访问规则集合并添加新元素属性。