2012-01-13 19 views
15

¿Cómo puedo calcular si esta casilla de verificación ha sido marcada con este comando?Marque esta casilla si está marcada

Tengo el siguiente, pero no está seguro de cómo implementar esto (por lo que sólo comprueba la única casilla seleccionada en lugar de todos en la página

if ($('input[type="checkbox"]').is(':checked') 

Respuesta

22

¿Y esto?

if($(this).is(':checked')) 
+0

gracias ¡lo acabo de arreglar! doh nice one mate aceptará la respuesta en breve :) – Zabs

+3

Esto funciona, pero no es una buena práctica. Vea mi respuesta de por qué esto es muy ineficiente. – lonesomeday

12

Presumiblemente significa this en el contexto de un controlador de eventos ... En cuyo caso, simplemente pruebe la propiedad checked:

$('input[type="checkbox"]').click(function() { 
    if (this.checked) { 
     // checkbox clicked is now checked 
    } 
}); 

Tenga en cuenta que usted puede hacer lo mismo con los métodos siguientes:

  • $(this).is(':checked')
  • $(this).prop('checked')

Sin embargo, this.checked evita la creación de un nuevo objeto jQuery, por lo que es mucho más eficiente (y más rápido codificar). is es el más lento: tarda el doble que prop y aproximadamente 100 veces más que la simple búsqueda de propiedades.

jsPerf comparison between this techniques

3

Es necesario utilizar el selector de ID. El selector de entrada [type = "checkbox"] devolverá 'todas las casillas de verificación.

if ($('#Checkbox1').is(':checked')) 

donde CheckBox1 es el ID de la casilla de verificación

1

intente lo siguiente, donde se sabe que el id

$('#edit-checkbox-id').is(':checked'); 

o si ya estamos refiriendo al elemento con esta palabra clave

$(this).is(':checked'); 
1

Uso lo siguiente:

$(this).find('input[type="checkbox"]:checked') 

este ejemplo se devuelve toda la casilla de verificación se comprobó

2

Quiso decir como esto (0 es el índice):

if ($(':checkbox').get(0).is(':checked')) 

O así:

if ($(this).is(':checked')) 
2

Mira en prop(): http://api.jquery.com/prop/

La d Los ocs brindan múltiples formas mejores de buscar una casilla de verificación "marcada".

elem.checked      | true (Boolean) Will change with checkbox state 
$(elem).prop("checked")   | true (Boolean) Will change with checkbox state 
elem.getAttribute("checked")  | "checked" (String) Initial state of the checkbox; does not change 
$(elem).attr("checked")(1.6)  | "checked" (String) Initial state of the checkbox; does not change 
$(elem).attr("checked")(1.6.1+) | "checked" (String) Will change with checkbox state 
$(elem).attr("checked")(pre-1.6) | true (Boolean) Changed with checkbox state 
Cuestiones relacionadas