使用$(“形式”)背后的共鸣是什么.removeData(“validator”)& $( “形式”)removeData( “unobtrusiveValidation”)。在局部视图内

时间:2015-01-10 02:32:00

标签: asp.net-mvc twitter-bootstrap razor asp.net-mvc-5 partial-views

我正在阅读以下示例link关于在弹出菜单中显示部分视图。但我注意到在部分视图中,作者在视图的末尾使用以下代码: -

$("form").removeData("validator");
    $("form").removeData("unobtrusiveValidation");
    $.validator.unobtrusive.parse("form");

所以有人可以建议添加此代码的目的是什么?

2 个答案:

答案 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'))数据,并访问规则集合并添加新元素属性。