2012-08-02 15 views
5

Ho un modulo con una serie di checkbox. Voglio avvisare l'utente, dopo aver premuto invio, se TUTTE le caselle di controllo sono deselezionate. Sto usando il seguente codice per segnalare tutti i valori delle caselle di controllo:avvisa l'utente se tutte le caselle di controllo sono deselezionate

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

Questo sembra funzionare. Tuttavia, quando provo a verificare se l'oggetto restituito è vuoto, non sembra funzionare. Questo è quello che sto cercando:

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

Qualsiasi suggerimento è apprezzato. Grazie!

+0

Sei sulla strada giusta. Basta usare: if (jQuery (". Checkbox: checked"). Length == 0), o con il tuo codice: if (jQuery ("[id^= leg_rider]: controllato"). Length == 0) {alert ()} – ShaunOReilly

risposta

10

È possibile utilizzare jQuery dell'oggetto length proprietà:

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

+1 per lunghezza ':)' –

+2

+1 per menzionare la proprietà della lunghezza. – Nope

+1

+10 molti ringraziamenti –

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

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

Prova questo: usando .Per passare api pure in modo da mantenere la pista :)

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 per modifica ':' – undefined

+1

+1 per modifica e Demo – Nope

+0

@ FrançoisWahl Grazie bruv! ':)' sai che sarai ricordato per questo. 'B-)' –

0

Sulla linea

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

Si sta effettivamente controllare l'esistenza dell'oggetto, se non è vuota. Poiché utilizzi jQuery, puoi utilizzare la funzione .isEmptyObject() per verificare se l'oggetto è vuoto.

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

Prova questo:

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

mio codice jQuery:

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

esempio dal vivo: http://jsfiddle.net/webwarrior/NJwv4/9/

Questo wi Ti darò la possibilità di controllare solo alcune caselle di controllo.

hth, Shaun

Problemi correlati