2011-01-26 13 views
14

Duplicar posible:
Check checkbox checked property using jQueryjQuery si casilla de verificación no está marcada tema

Estoy teniendo un problema cuando recogiendo una casilla de verificación no está marcada.

Aquí está mi código de ejemplo:

$(".get-the-look ul input").click(function(){ 
    if("this:checked") { 
     var product = $(this).attr('alt'); 
     $("#bob div").remove('.'+product); 
    } else { 
     alert('asdasd'); 
    } 
}); 

Pero la alerta (si la casilla de verificación no está marcada) nunca se dispara ... La 'cosa' que nunca entra en acción, no importa en qué estado está en la casilla de verificación?

No veo dónde me estoy equivocando.

Respuesta

18

no se puede pasar this:checked como una cadena - que no funcionará, ya que será interpretada como una cadena y siempre evaluar a true

uso $(this).is(':checked') lugar

+0

sí $ (this) .is (: activada) se debe utilizar! – Harish

+0

otro poco similar q/a: http://stackoverflow.com/questions/2525331/jquery-checked-checkbox-ie-problem – Forhad

2

La cadena "this:checked" siempre a evaluar TRUE. Trate this.checked lugar, es decir, evaluar la propiedad de checked en this:

if(this.checked) { ... 
+0

Hmm, un poco tarde en eso :) Además, asegúrese de que solo intente acceder '.checked' on' jensgram

+0

yeah :) pero usar native this.checked hará su trabajo (y aún más rápido) - le dio a jquery answer por consistencia con el resto del ejemplo y para mostrar cómo se debe usar correctamente. –

+0

@Tom Hu Yup! Además, olvidé la referencia a [* Utilizando el asombroso poder de jQuery para acceder a las propiedades de un elemento *] (http://whattheheadsaid.com/2010/10/utilizing -the-awesome-power-of-jquery-to-access-properties-of-an-element) a la que puedo vincular cada vez que puedo :) – jensgram

Cuestiones relacionadas