2012-08-02 22 views
5

Tôi có biểu mẫu với một loạt các hộp kiểm. Tôi muốn cảnh báo người dùng, sau khi họ nhấn gửi, nếu TẤT CẢ các hộp kiểm được bỏ chọn. Tôi đang sử dụng mã sau đây để báo cáo tất cả các giá trị của hộp kiểm:cảnh báo người dùng nếu không chọn tất cả các hộp kiểm

$('[id^=leg_rider]').filter(':checked'); 

Điều này có vẻ hiệu quả. Tuy nhiên, khi tôi cố kiểm tra xem đối tượng được trả về có trống không, nó dường như không hoạt động. Đây là những gì tôi đang cố gắng:

 $("#set_pref_submit").click(function() { 
     var legchecked = $('[id^=leg_rider]').filter(':checked'); 
     if (!legchecked){ alert("no riders")}; 
    }); 

Bất kỳ đề xuất nào được đánh giá cao. Cảm ơn!

+0

Bạn đang đi đúng hướng. Chỉ cần sử dụng: if (jQuery (". Checkbox: checked"). Length == 0), hoặc với mã của bạn: if (jQuery ("[id^= leg_rider]: đã chọn"). Length == 0) {alert ()} – ShaunOReilly

Trả lời

10

Bạn có thể sử dụng jQuery đối tượng length thuộc tính:

$("#set_pref_submit").click(function() { 
    var legchecked = $('input[id^=leg_rider]:checked').length; 
    if (legchecked){ alert("no riders")}; 
}); 
+2

+1 cho chiều dài ':)' –

+2

+1 để đề cập đến thuộc tính độ dài. – Nope

+1

+10 upvotes cảm ơn rất nhiều –

0
if (legchecked.size() == 0){ alert("no riders")}; 
5

Working Demo: http://jsfiddle.net/MrkfW/

Hãy thử điều này: sử dụng .change api cũng vì thế nó giữ theo dõi :)

API: http://api.jquery.com/change/

$("input[type='checkbox'][id^=leg_rider]").change(function(){ 
    var a = $("input[type='checkbox'][id^=leg_rider]"); 
    if(a.length == a.filter(":checked").length){ 
     alert('all checked'); 
    } else { 
     alert('not all checked'); 
    } 
}); 
+2

+1 cho thay đổi ':)' – undefined

+1

+1 để thay đổi và giới thiệu – Nope

+0

@ FrançoisWahl Cảm ơn bruv! ':)' bạn biết rằng bạn sẽ được nhớ cho điều này. 'B-)' –

0

Trên dòng

if (!legchecked){ alert("no riders")}; 

Bạn đang thực sự kiểm tra sự tồn tại của đối tượng, không nếu đó là sản phẩm nào. Vì bạn đang sử dụng jQuery, bạn có thể sử dụng hàm .isEmptyObject() để kiểm tra xem đối tượng có rỗng không.

if($.isEmptyObject(legchecked)) {alert ("no riders")}; 
2

Hãy thử điều này:

html của tôi:

<input id="chkbx_0" type="checkbox" class="checkbox" name="c_n_0" checked="checked" />Option 1 
<br/><input id="chkbx_1" type="checkbox" class="checkbox" name="c_n_1" />Option 2 
<br/><input id="chkbx_2" type="checkbox" class="checkbox" name="c_n_2" />Option 3 
<br/><input id="chkbx_3" type="checkbox" class="checkbox" name="c_n_3" checked="checked" />Option 4 
<br/><br/> 
<input type="button" value="Click me" class="testall"/>​ 

Mã JQuery của tôi:

jQuery(".testall").click(function() { 
    if (jQuery(".checkbox:checked").length == 0) { alert("no riders"); } 
}); 

Sống dụ: http://jsfiddle.net/webwarrior/NJwv4/9/

wi này sẽ cung cấp cho bạn tùy chọn chỉ kiểm tra một số hộp kiểm nhất định.

hth, Shaun

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