2012-08-02 24 views
5

Bir dizi onay kutusu içeren bir formum var. Onay kutularının tümü işaretlenmediyse, kullanıcıyı gönderdikten sonra kullanıcıyı uyarmak istiyorum. Onay kutularının tüm değerlerini bildirmek için aşağıdaki kodu kullanıyorum:Tüm onay kutuları işaretlenmemişse kullanıcıyı uyar

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

Bu işe yarıyor. Ancak, döndürülen nesnenin boş olup olmadığını kontrol etmeye çalıştığımda, işe yaramıyor. Denediğim şey buydu:

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

Her türlü öneriniz için teşekkür ederiz. Teşekkürler!

+0

Doğru yoldasınız. Sadece şunu kullanın: if (jQuery (". Checkbox: checked"). Length == 0), veya kodunuzla: if (jQuery ("[id^= leg_rider]: kontrol"). Length == 0) {alert ()} – ShaunOReilly

cevap

10

kullanabilirsiniz jQuery nesnenin length mülkiyeti:

hat

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

Aslında bu boş değilse, nesnenin varlığını kontrol ediyoruz Açık

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

+1, uzunluk:: –

+2

+1. – Nope

+1

+10 çok teşekkürler –

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

Çalışma Demo: http://jsfiddle.net/MrkfW/

bu deneyin: yanı .change API kullanarak bu takip böylece :)

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 değiştirmek için: '' – undefined

+1

+1 değiştirmek ve Demo için – Nope

+0

@ FrançoisWahl Teşekkürler bruv! ':)' Bunun için hatırlanacağını biliyorsun. 'B-) –

0

. JQuery'yi kullandığınızdan, nesnenin boş olup olmadığını kontrol etmek için .isEmptyObject() işlevini kullanabilirsiniz.

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

bu deneyin:

Benim html:

<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"/>​ 

Benim JQuery Kodu:

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

Canlı örnek: http://jsfiddle.net/webwarrior/NJwv4/9/

Bu wi Yalnızca belirli onay kutularını işaretleme seçeneği sunar.

hth, Shaun

İlgili konular