2010-08-25 42 views
1

我使用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 
    }); 
}); 

回答

3

有沒有需要循環,它會在查詢中設置操作,這樣的:

$("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 
}); 
+1

大多數Ø如上所述,Validate方法可以像Nich一樣被引用。我發現equalTo需要作爲一個規則添加到腳本塊中。 – SidC 2010-08-25 18:42:36