2010-02-01 8 views
8

Veo un error que no puedo replicar de un pequeño subconjunto de usuarios. Aquí está el código:jQuery: solo IE, entrada: activada devuelve 0 incluso cuando los elementos están seleccionados

var selected = $('#mytable input:checked'); 
if (selected.length == 0) { 
    $('body').trigger('notice', 'Please select some items first'); 
    return; 
} 

Incluso cuando el usuario marca varias casillas de verificación, se activa el "aviso". Parece selected.length es cero cuando no debería ser.


[ACTUALIZACIÓN] El selector funciona cuando está actualizada:

var selected = $('input[class="selection"]:checked'); 

Parece incluyendo el id en el selector rompe cosas, sólo en IE.


Este código está trabajando para la gran mayoría de los usuarios y no podemos reproducir el problema, pero para los usuarios que ven el problema es constante y cada vez que ocurre.

Parece estar aislado de IE (aunque no estoy seguro). Estamos usando jQuery 1.3.2 (de google CDN).

¿Alguna idea?

Respuesta

2

Sería una buena idea pegar el controlador de eventos/código circundante. Para un punto de partida, se recomienda usar el selector :checkbox en su primera línea:

$('#mytable input:checkbox:checked') 

El manual dice:

$(':checkbox') es equivalente a $('*:checkbox'), por lo $('input:checkbox') debe usarse lugar.

Por supuesto, eso puede no hacer ninguna diferencia en absoluto. :checkbox es equivalente a $('[type=checkbox]'), por lo que podría ser que IE está asfixiando por parte input:checked del selector que está poniendo a prueba todos los elementos de entrada para el estado checked.

1

Me encontré con un problema similar en el que, durante mi vida, no pude conseguir que IE reconociera una caja que había sido 'revisada' programáticamente por otro controlador de eventos.

recurrieron a:

$("input[name='iptName'][CHECKED]").size() 

Aparentemente, IE (de la variedad con sabor 8) estaba siendo sensible sobre el caso. ': checked', ': CHECKED' y '[checked]' fueron nulos.

Cualquier otra persona se encuentra con este?

Cuestiones relacionadas