Me gustaría hacer algo como esto para marcar una checkbox
usando jQuery:
$(".myCheckBox").checked(true);
o
$(".myCheckBox").selected(true);
¿Existe algo así?
Utilice .prop()
:
$('.myCheckbox').prop('checked', true);
$('.myCheckbox').prop('checked', false);
Si estás trabajando con un solo elemento, siempre puedes acceder al HTMLInputElement
subyacente y modificar su propiedad .checked
:
$('.myCheckbox')[0].checked = true;
$('.myCheckbox')[0].checked = false;
La ventaja de utilizar los métodos .prop()
y .attr()
en lugar de esto es que operarán en todos los elementos coincidentes.
El método .prop()
no está disponible, por lo que es necesario utilizar .attr()
.
$('.myCheckbox').attr('checked', true);
$('.myCheckbox').attr('checked', false);
Tenga en cuenta que este es el enfoque utilizado por las pruebas unitarias de jQuery antes de la versión 1.6 y es preferible a utilizar $('.myCheckbox').removeAttr('checked');
ya que este último, si la caja estaba inicialmente marcada, cambiará el comportamiento de una llamada a .reset()
en cualquier formulario que la contenga - un cambio de comportamiento sutil pero probablemente no deseado.
Para más contexto, una discusión incompleta de los cambios en el manejo del atributo/propiedad checked
en la transición de 1.5.x a 1.6 puede encontrarse en las notas de la versión 1.6 y en la sección Atributos vs. Propiedades de la documentación de .prop()
.
Utilizar:
$(".myCheckbox").attr('checked', true); // Deprecated
$(".myCheckbox").prop('checked', true);
Y si quieres comprobar si una casilla de verificación está marcada o no:
$('.myCheckbox').is(':checked');
Puedes hacer
$('.myCheckbox').attr('checked',true) //Standards compliant
o
$("form #mycheckbox").attr('checked', true)
Si tiene código personalizado en el evento onclick para la casilla de verificación que desea disparar, utilice éste en su lugar:
$("#mycheckbox").click();
Puedes desmarcarte eliminando el atributo por completo:
$('.myCheckbox').removeAttr('checked')
Puede marcar todas las casillas de verificación así:
$(".myCheckbox").each(function(){
$("#mycheckbox").click()
});