Jquery validate返回未定义的结果

Jquery validate返回未定义的结果,jquery,asp.net-mvc,validation,Jquery,Asp.net Mvc,Validation,我创建了一个MVC5表单,它使用editorfor函数动态添加字段。MVC会自动为这些字段分配新的id和名称,以便我在模型中定义的属性不是相同的id和名称。这导致MVC验证无法检索我在属性数据批注中指定的错误消息。为了纠正这一点,我试图为元素分配一条特定的错误消息。但是,我无法将validator.rors应用于元素,因为当我尝试验证特定元素时,结果是未定义的。为什么下面代码中的var验证器返回未定义 谢谢 $('form').removeData("validator").removeData

我创建了一个MVC5表单,它使用editorfor函数动态添加字段。MVC会自动为这些字段分配新的id和名称,以便我在模型中定义的属性不是相同的id和名称。这导致MVC验证无法检索我在属性数据批注中指定的错误消息。为了纠正这一点,我试图为元素分配一条特定的错误消息。但是,我无法将
validator.rors
应用于元素,因为当我尝试验证特定元素时,结果是未定义的。为什么下面代码中的var验证器返回未定义

谢谢

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

var validator = $('#myClass_0__Age').validate();

我相信jqueryvalidate是在表单最初加载时基于元素上的类进行初始化的

因为您要动态添加需要验证的元素,所以在加载它们时必须自己注册它们以进行验证

$('#elementID').rules('add', 'required');
在向表单中的元素添加元素后,尝试调用该函数,然后查看验证程序是否停止返回未定义的


例如,即使您正在添加它们,如果它们没有所有正确的类,它也不会将它们添加到验证中。我非常确信,使用上述代码将为您完成所有这些类,并将其连接到验证引擎中。

事实上,我一直都有正确的jQuery函数:

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

但是,我的页面显示了嵌套类属性的默认MVC验证错误,而不是那些我在这些属性的数据注释中指定的错误,因为我在提交函数中重新解析了不引人注目的验证器(上面的jQuery函数),而不是在用于输入附加属性的Json函数中。将上面的行移到my property/element load函数的Json响应,解决了这个问题。

感谢您的响应。您帮助我走上了正确的道路,因为您认为jQuery验证需要在加载页面元素时更新。幸运的是,我不需要像您描述的那样注册每个元素,只需重新解析表单(参见下面的响应)就足够了。