2013-05-29 21 views
5

Cũng đủ để tôi biết rằng plugin xác thực biểu mẫu JQuery chỉ hoạt động trên các trường có thuộc tính "name".Làm cho plugin xác nhận Jquery hoạt động trên các đầu vào không có thuộc tính name

Dù sao, tôi sử dụng nó để thực hiện tất cả các trường bắt buộc.

Vấn đề của tôi là tại một số điểm, tôi có một đầu vào văn bản

<div id='choices'> 
    <input type='text' /> 
</div> 
<a href='#' id='add-choice' >Add input </a> 

người dùng có thể thêm bao nhiêu đầu vào văn bản như ông muốn:

$("#add-choice").live("click",function(){ 
        $("#choices").append("<input type='text' /><br>"); 
}); 

Và tôi muốn các lĩnh vực mới để cũng được yêu cầu. Ngay cả khi tôi đặt tên cho đầu vào đầu tiên. Tôi nên làm gì cho các đầu vào mới được thêm động?

Có cách nào để sử dụng plugin mà không sử dụng tên người quản lý hoặc có giải pháp khác không?

+0

[thẻ: jquery-validation-engine] là một plugin hoàn toàn khác. Thẻ đã chỉnh sửa. – Sparky

Trả lời

1

Tôi nên làm gì để các đầu vào mới được thêm động?

Cung cấp cho họ một cái tên, bất kỳ tên

Có cách nào để sử dụng các plugin mà không sử dụng tên attr?

Không

Có một giải pháp khác?

Tùy thuộc vào những gì bạn đang làm với các trường - bạn rõ ràng không cần tên trên chúng vì bất kỳ lý do nào khác ngoài việc thực hiện công việc xác thực, vậy tại sao bạn không tạo tên và gọi tất cả những điều đó?

chỉnh - cần tên duy nhất xem ý kiến ​​

var i = 0; 
$("#add-choice").live("click",function(){ 
$("#choices").append("<input type='text' name='bob" + i + "' class='required'/><br>"); 
i = i + 1; 
}); 
+1

Nó cũng sẽ không hoạt động nếu tất cả các trường có cùng một 'tên'. – Sparky

+0

cảm ơn vì @Sparky, tôi đã sửa câu trả lời của tôi –

+0

cảm ơn cả hai, đó là cách giải quyết mà tôi đang tìm kiếm. –

1

Trích OP:

"Có cách nào để sử dụng các plugin mà không sử dụng tên attr"

Không, bạn không thể sử dụng các plugin jQuery Validate nếu bạn không có name thuộc tính trên tất cả các trường của bạn.

As per documentation:

Markup khuyến nghị

Thuộc tính tên là '' 'cần' '' cho các yếu tố đầu vào, các plugin validation không hoạt động mà không có nó.

Cách giải quyết khác là tạo jQuery tên duy nhất khi tạo đầu vào mới.

1

Có bạn có thể làm điều đó, nhưng với những hạn chế

Hạn chế: Bạn sẽ không phải linh hoạt trong việc thay đổi các thông điệp trong khi sử dụng quy tắc khác nhau.

<form ="validationForm"> 
<input type="text" class="required" title="required message" /> 
</form> 

jQuery("#validationForm").validate(); 
Các vấn đề liên quan