2010-06-14 25 views
10

Tôi đang cố thêm quy tắc xác thực vào nhiều hộp văn bản động. Đây là js:jQuery - Tự động thêm quy tắc xác thực vào nhiều hộp văn bản

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

Quy tắc này áp dụng quy tắc cho hộp văn bản đầu tiên trên trang "Giờ" trong id nhưng sau đó không áp dụng cho hộp văn bản đầu tiên trên trang.

Có ai biết điều gì sai ở đây không?

Cảm ơn, Justin

Trả lời

10

Bạn có thể thêm các quy tắc để từng hạng mục kết hợp bởi bộ chọn ký tự đại diện với .each(), như thế này:

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

Hope this helps!

+0

Cảm ơn, .each (function() {là những gì tôi đang tìm kiếm – Justin

+0

Tôi đã cập nhật câu trả lời vì nhận xét của bạn lần lượt khiến tôi nhận ra rằng bạn thậm chí không cần phương thức duyệt cây thông qua bộ chọn ký tự đại diện sẽ khớp tất cả các trường được chỉ định anyways Duh! :) –

+0

Hoạt động tốt. cảm ơn. – spr

0

tôi đã có thể để có được nó làm việc làm này:

<% 
      int index = 0; 
      foreach (var log in Model.InvoiceLogs) { 
      %> 
       <tr> 
        <td class="topalign"> 
         <%: log.LogDate.ToShortDateString() %> 
         <%: Html.Hidden("InvoiceLogs[" + index + "].InvoiceID", log.InvoiceID) %> 
         <%: Html.Hidden("InvoiceLogs[" + index + "].InvoiceLogID", log.InvoiceLogID) %> 
        </td> 
        <td class="editor-field-medium"><%: Html.TextArea("InvoiceLogs[" + index + "].Description", Convert.ToString(ViewData["Description_" + log.InvoiceLogID]))%></td> 
        <td class="editor-field-small topalign"> 
         <%: Html.TextBox("InvoiceLogs[" + index + "].Hours", ViewData["Hours_" + log.InvoiceLogID])%> 
         <script type="text/javascript"> 
          $(document).ready(function() { 
           $("#InvoiceLogs_<%: index %>__Hours").rules("add", { 
            number: true, 
            messages: { 
             number: "Invalid Hours" 
            } 
           }); 
          }); 
         </script> 
        </td> 
       </tr> 
      <% 
       index++; 
      } 
      %> 
     </table> 

Tuy nhiên, điều này không có vẻ như một giải pháp tốt. Cách thích hợp để thêm quy tắc xác thực vào danh sách các điều khiển nhập động là gì?

Các vấn đề liên quan