我正在使用jQuery validate plugin来验证包含大量字段的表单:
<td><input name="first_name0"></td>
<td><input name="last_name0"></td>
<td><input name="age0"></td>
<td><input name="first_name1"></td>
<td><input name="last_name1"></td>
<td><input name="age1"></td>
<td><input name="first_name2"></td>
<td><input name="last_name2"></td>
<td><input name="age2"></td>
...
<td><input name="first_name200"></td>
<td><input name="last_name200"></td>
<td><input name="age200"></td>
将验证规则添加到所有相同字段的最佳方法是什么?目前我正在添加这样的规则,但是在100行之后它很慢。
$("input[name*=age]").each(function(i) {
$(this).rules("add", {
digits: true
});
});
$("input[name*=first_name], input[name*=last_name]").each(function(i) {
$(this).rules("add", {
digits: true
});
});
答案 0 :(得分:3)
没有必要循环,它将在Query集上运行,如下所示:
$("input").filter("[name*=age], [name*=first_name], [name*=last_name]")
.rules("add", {
digits: true
});
为他们提供课程将更加可维护,例如:
<td><input name="first_name0" class="digits"></td>
<td><input name="last_name0" class="digits"></td>
<td><input name="age0" class="digits"></td>
然后你可以这样做:
$("input.digits").rules("add", {
digits: true
});