Obtiene el valor de la checkbox en jQuery

¿Cómo puedo obtener el valor de una checkbox en jQuery?

Para obtener el valor del atributo de valor puede hacer algo como esto:

$("input[type='checkbox']").val(); 

O si ha establecido una class o una id para ello, puede:

 $('#check_id').val(); $('.check_class').val(); 

Sin embargo, esto devolverá el mismo valor, ya sea que esté marcado o no, esto puede ser confuso ya que difiere del comportamiento del formulario enviado.

Para verificar si está marcado o no, haz:

 if ($('#check_id').is(":checked")) { // it is checked } 

Esas 2 formas están funcionando:

  • $('#checkbox').prop('checked')
  • $('#checkbox').is(':checked') (gracias @mgsloan )
 $('#test').click(function() { alert("Checkbox state (method 1) = " + $('#test').prop('checked')); alert("Checkbox state (method 2) = " + $('#test').is(':checked')); }); 
  Check me:  

Prueba esta pequeña solución:

 $("#some_id").attr("checked") ? 1 : 0; 

o

 $("#some_id").attr("checked") || 0; 

La única forma correcta de recuperar el valor de una checkbox es la siguiente

 if ( elem.checked ) if ( $( elem ).prop( "checked" ) ) if ( $( elem ).is( ":checked" ) ) 

como se explica en la documentación oficial en el sitio web de jQuery. El rest de los métodos no tiene nada que ver con la propiedad de la checkbox, están verificando el atributo, lo que significa que están probando el estado inicial de la casilla cuando se cargó. En resumen:

  • Cuando tienes el elemento y sabes que es una casilla, simplemente puedes leer su propiedad y no necesitarás jQuery para eso (es decir, elem.checked ) o puedes usar $(elem).prop("checked") si quiero confiar en jQuery.
  • Si necesita saber (o comparar) el valor cuando el elemento se cargó por primera vez (es decir, el valor predeterminado), la forma correcta de hacerlo es $(elem).is(":checked") .

Las respuestas son engañosas, compruebe a continuación usted mismo:

http://api.jquery.com/prop/

Solo para aclarar cosas:

 $('#checkbox_ID').is(":checked") 

Volverá ‘verdadero’ o ‘falso’

 $('#checkbox_id').val(); $('#checkbox_id').is(":checked"); $('#checkbox_id:checked').val(); 
 jQuery(".checkboxClass").click(function(){ var selectedCountry = new Array(); var n = jQuery(".checkboxClass:checked").length; if (n > 0){ jQuery(".checkboxClass:checked").each(function(){ selectedCountry.push($(this).val()); }); } alert(selectedCountry); }); 

Simple pero efectivo y supone que sabe que se encontrará la checkbox:

 $("#some_id")[0].checked; 

Da true / false

A pesar de que esta pregunta requiere una solución jQuery, aquí hay una respuesta pura de JavaScript, ya que nadie lo ha mencionado.

Sin jQuery:

Simplemente seleccione el elemento y acceda a la propiedad checked (que devuelve un booleano).

 var checkbox = document.querySelector('input[type="checkbox"]'); alert(checkbox.checked); 
  
 //By each() var testval = []; $('.hobbies_class:checked').each(function() { testval.push($(this).val()); }); //by map() var testval = $('input:checkbox:checked.hobbies_class').map(function(){ return this.value; }).get().join(","); //HTML Code Cricket Hockey 

Ejemplo
Manifestación

Aquí es cómo obtener el valor de todas las casillas marcadas como una matriz:

 var values = (function() { var a = []; $(".checkboxes:checked").each(function() { a.push(this.value); }); return a; })() 
  

 
{{$name->name}}

Use This $ (‘input [name ^ = CheckBoxInput]’). Val ();

$ (‘. class [value = 3]’). prop (‘verificado’, verdadero);