根据评论编辑并编辑 OP:
“在稍后出现的元素(即
新表单)上附加 jquery 验证的最聪明的方法是什么”
如果您正在谈论创建/加载一个全新的表单,那么 AFAIK,这是唯一的方法....validate()
在您加载/创建新表单后立即调用...
$('#my_NEW_form').validate({
// your options
});
如果您的所有表单共享相同的选项,您还可以使用该setDefaults
方法一次以避免一遍又一遍地声明它们......
$.validator.setDefaults({
// your repeated options
});
请参阅: http ://docs.jquery.com/Plugins/Validation/Validator/setDefaults#defaults
编辑2:
“我可以.on
以某种方式使用吗?如果方法“on”可以将“事件”绑定到新元素,为什么我们不能应用整个验证?
因为它用于绑定events
,而不是插件,并且... .validate()
不是事件。 jQuery.on()
用于自动将 a 绑定function
到a,event
因为 newelement
是动态创建的。
同样,您从未解释过问题的目的……您为什么要这样做?保存代码?
回到我们开始的地方......简单地$('#newform').validate({/*options*/})
在你的ajax
success
回调函数中调用与你必须放在其他任何地方的代码量完全相同。
原始答案如下。我将它留在原处是因为一些关于.validate()
初始化的一般信息仍然适用。
我假设您的问题基本上是“如何将规则应用于动态添加的字段输入?”
“在稍后出现的元素上附加 jquery 验证的最聪明的方法是什么”
通过使用插件的内置rules('add')
方法动态应用规则。
“有比在每个 AJAX 调用的 .success() 处理程序中再次调用 jquery validate 更好的方法吗?”
你实际上不应该再打电话.validate()
。一次.validate()
调用一次是为了初始化表单上的插件,再调用一次,不会改变规则。有一种方法。
在添加新字段元素的任何ajax
success
回调函数中,使用内置rules('add')
方法。
$('#yourfield').rules('add', {
required: true,
// other rules,
messages: { // optional
required: "your optional custom message"
}
});
.each()
如果您需要一次将规则应用于多个字段,请使用 jQuery ....
演示:http: //jsfiddle.net/ucYkY/