jQuery – 如何dynamic添加validation规则

我试图dynamic地添加一个validation规则到一些dynamic控件:

$("input[id*=Hours]").rules("add", "required"); 

但是这一行给我以下错误:

$ .data(element.form,“validator”)为空

使用validate函数定义规则的静态方式正常工作。 我究竟做错了什么?

谢谢,贾斯汀

您需要先调用.validate()然后才能以这种方式添加规则,如下所示:

 $("#myForm").validate(); //sets up the validator $("input[id*=Hours]").rules("add", "required"); 

.validate()文档是一个很好的指南,下面是关于.rules("add", option)

添加指定的规则并返回第一个匹配元素的所有规则。 需要validation父表单,即首先调用$("form").validate()

要validation所有dynamic生成的元素,可以为每个元素添加一个特殊的类,并使用each()函数

 $("#DivIdContainer .classToValidate").each(function () { $(this).rules('add', { required: true }); }); 

该文件说:

添加指定的规则并返回第一个匹配元素的所有规则。 需要validation父表单,即首先调用$(“form”)。validate()。

是你做的吗? 错误消息种类表示您没有。

以及确保你有第一个$("#myForm").validate(); ,请确保在添加validation规则之前,您的dynamic控件已添加到DOM。