2012-08-02 11 views
5

Tengo un formulario con una serie de casillas de verificación. Quiero advertir al usuario, después de presionar enviar, si TODAS las casillas de verificación están desmarcadas. Estoy utilizando el código siguiente para informar a todos los valores de las casillas de verificación:advertir al usuario si todas las casillas de verificación están desmarcadas

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

Esto parece funcionar. Sin embargo, cuando intento verificar si el objeto devuelto está vacío, parece que no funciona. Esto es lo que estoy intentando:

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

Cualquier sugerencia es apreciada. ¡Gracias!

+0

Está en el camino correcto. Solo use: if (jQuery (". Checkbox: checked"). Length == 0), o con su código: if (jQuery ("[id^= leg_rider]: checked"). Length == 0) {alert ()} – ShaunOReilly

Respuesta

10

Puede usar jQuery objeto length propiedad:

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

+1 para la longitud ':)' –

+2

+1 para mencionar la propiedad de longitud. – Nope

+1

+10 upvotes muchas gracias –

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

Demostración de Trabajo: http://jsfiddle.net/MrkfW/

Prueba esto: el uso de la API, así .Cambiar por lo que mantener 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 por cambio ':)' – undefined

+1

+1 por cambio y Demo – Nope

+0

@ FrançoisWahl Gracias bruv! ':)' sabes que serás recordado por esto. 'B-)' –

0

En la línea

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

En realidad estás comprobando la existencia del objeto, no si está vacío. Como está utilizando jQuery, puede usar la función .isEmptyObject() para verificar si el objeto está vacío.

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

Prueba esto:

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

Mi código jQuery:

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

ejemplo vivo: http://jsfiddle.net/webwarrior/NJwv4/9/

Este wi Te daré la opción de marcar solo ciertas casillas de verificación.

HTH, Shaun

Cuestiones relacionadas