我正在尝试使用此命名约定向 html 输入元素添加相同的规则:
name="elements[1]"
name="elements[2]"
我正在使用 jQuery 和 jQuery 验证插件:
var elements = $("#elementsFieldset :input");
$.each(elements, function(i, element) {
element.rules('add', {
required: true,
number: true
});
但恐怕 element 不是 jQuery 期望添加规则的那种对象。 我收到:
Uncaught TypeError: Object #<HTMLInputElement> has no method 'rules'
非常感谢您的帮助。
最佳答案
使用 $(this)
代替 element
。
element
是 HTML JavaScript 对象。
要添加规则,您需要 jQuery 对象,即 $(this)
var elements = $("#elementsFieldset :input");
$.each(elements, function(i, element) {
$(this).rules('add', {
required: true,
number: true
});
甚至更好
var elements = $("#elementsFieldset :input");
elements.each(function(){
$(this).rules('add', {
required: true,
number: true
});
已更新
以下代码仅适用于一个元素,如果您想为多个元素应用规则,请使用上例中使用的 .each()
。
$("#elementsFieldset :input").rules("add", {
required:true,
number:true
});
阅读jQuery Validation Plugin - adding rules that apply to multiple fields由 Sparky 评论
关于javascript - 添加相同规则的多个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19229362/