2012-08-02 17 views
5

Mam formularz z serii pól wyboru. Chcę ostrzec użytkownika, gdy zostanie on wysłany, jeśli WSZYSTKIE pola wyboru są odznaczone. Używam następującego kodu do zgłaszania wszystkich wartości pól wyboru:ostrzec użytkownika, jeśli wszystkie pola wyboru są odznaczone

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

To wydaje się działać. Jednak gdy próbuję sprawdzić, czy zwracany obiekt jest pusty, nie wydaje się działać. Oto, co próbuję:

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

Wszelkie sugestie są mile widziane. Dzięki!

+0

Jesteś na dobrej drodze. Po prostu użyj: if (jQuery ("checkbox: sprawdzone") length == 0) lub z kodem: if (jQuery ("[id^= leg_rider]: checked") length == 0) {alert ()} – ShaunOReilly

Odpowiedz

10

Można użyć jQuery właściwość obiektu length:

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

+1 dla długości ':)' –

+2

+1 za podanie właściwości length. – Nope

+1

+10 upvotes wielkie dzięki –

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

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

Spróbuj tego: using .change API, jak również tak, że utrzymanie toru :)

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 dla zmiany ':)' – undefined

+1

+1 dla zmiany i Demo – Nope

+0

@ FrançoisWahl Thanks bruv! ':)' wiesz, że zostaniesz o tym zapamiętany. 'B-)' –

0

Na linii

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

Ty rzeczywiście sprawdzanie istnienia obiektu, jeśli nie jest ona pusta. Ponieważ używasz jQuery, możesz użyć funkcji .isEmptyObject(), aby sprawdzić, czy obiekt jest pusty.

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

Spróbuj tego:

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

Mój kod jQuery:

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

żywo przykład: http://jsfiddle.net/webwarrior/NJwv4/9/

to wi Daje ci możliwość sprawdzenia tylko niektórych pól wyboru.

hth, Shaun

Powiązane problemy