jQuery – 将validation规则动态添加到多个文本框

我正在尝试动态地向多个文本框添加validation规则。 这是js:

//validate form. $("#SubmitForm").validate(); $("input[id*=Hours]").rules("add", { number: true, messages: { number: "Please enter a valid Hours" } }); 

这将规则应用于页面上第一个带有“小时”的文本框,但是它不会将其应用于任何其他文本框。

谁知道这里有什么问题?

谢谢,贾斯汀

您可以将规则添加到通配符选择器与.each()匹配的每个项目,如下所示:

 $("#SubmitForm").validate(); $("input[id*=Hours]").each(function() { $(this).rules("add", { number: true, messages: { number: "Please enter a valid Hours" } }); }); 

希望这可以帮助 !

我能够做到这一点:

 <% int index = 0; foreach (var log in Model.InvoiceLogs) { %>   <%: log.LogDate.ToShortDateString() %> <%: Html.Hidden("InvoiceLogs[" + index + "].InvoiceID", log.InvoiceID) %> <%: Html.Hidden("InvoiceLogs[" + index + "].InvoiceLogID", log.InvoiceLogID) %>  <%: Html.TextArea("InvoiceLogs[" + index + "].Description", Convert.ToString(ViewData["Description_" + log.InvoiceLogID]))%>  <%: Html.TextBox("InvoiceLogs[" + index + "].Hours", ViewData["Hours_" + log.InvoiceLogID])%>    <% index++; } %>  

但是,这似乎不是一个好的解决方案。 将validation规则动态添加到输入控件列表的适当方法是什么?