2010-10-12 29 views
5

Tôi có một biểu mẫu bằng cách sử dụng plugin xác thực JQuery.Xác thực JQuery: Cách kiểm tra các mục trong nhiều lựa chọn

<label> 
    <input name="Distribution[]" type="checkbox" id="dist_europe" class="required minlength:1" value="Europe" /> Europe 
</label> 

<select name="Europe[]" size="5" multiple id="Europe"> 
    <option value='Albania'>Albania</option> 
    <option value='Andorra'>Andorra</option> 
    <option value='Austria'>Austria</option> 
</select> 

Tôi cần thực hiện xác thực 'có điều kiện'. ví dụ: Nếu hộp kiểm được chọn, hãy đảm bảo ít nhất một mục trong 'tùy chọn chọn được chọn'.

$(document).ready(function(){ 
    $("#commentForm").validate({ 
     rules: { 
       Europe: { 
       required: "#dist_europe:checked", 
       minlength: 1 
       } 
     }, 
     messages: { 
     Europe: "Please select at least 1 country" 
     } 
    } 
}) 

Vấn đề tôi đang phải đối mặt bây giờ là:

  1. tôi có thể phát hiện rằng hộp kiểm được chọn.
  2. Tuy nhiên, tôi không thể kiểm tra mảng 'chọn', Châu Âu []
  3. Nếu tôi xóa mảng và đặt tên là Châu Âu, tôi sẽ có thể phát hiện thấy ít nhất một mục được chọn. Tuy nhiên, làm điều đó sẽ có nghĩa là tập lệnh PHP phụ trợ sẽ không thể xử lý nhiều lựa chọn trong mảng.

Làm cách nào để giải quyết vấn đề này? Cảm ơn

Trả lời

12

Khi sử dụng một cái tên như name="Europe[]", bạn sẽ cần phải sử dụng một chuỗi cho nhận dạng của bạn (số nhận dạng là tên, không phải là id của nguyên tố) trong rulesmessages, như thế này:

$(document).ready(function(){ 
    $("#commentForm").validate({ 
     rules: { 
     'Europe[]': { 
       required: "#dist_europe:checked", 
       minlength: 1 
       } 
     }, 
     messages: { 
     'Europe[]': "Please select at least 1 country" 
     }, 
    debug: true 
    }); 
}); 

You can test it out here.

+0

Cảm ơn rất nhiều. Nó hoạt động tuyệt vời. – slok

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