¿Cómo se puede marcar / desmarcar una casilla de verificación usando JavaScript, jQuery o vainilla?
javascript
jquery
checkbox
lisovaccaro
fuente
fuente
Respuestas:
Javascript:
jQuery (1.6+):
jQuery (1.5-):
fuente
attr
oprop
?.checked = true/false
no desencadena elchange
evento: - \Comportamiento importante que aún no se ha mencionado:
La configuración programática del atributo marcado no activa el
change
evento de la casilla de verificación .Compruébalo tú mismo en este violín:
http://jsfiddle.net/fjaeger/L9z9t04p/4/
(Fiddle probado en Chrome 46, Firefox 41 e IE 11)
El
click()
metodoAlgún día te encontrarás escribiendo código, que se basa en el evento que se dispara. Para asegurarse de que el evento se active, llame al
click()
método del elemento de casilla de verificación, de esta manera:Sin embargo, esto alterna el estado marcado de la casilla de verificación, en lugar de establecerlo específicamente en
true
ofalse
. Recuerde que elchange
evento solo debe activarse cuando el atributo marcado realmente cambia.También se aplica a la forma jQuery: establecer el atributo usando
prop
oattr
, no activa elchange
evento.Establecer
checked
un valor específicoPuede probar el
checked
atributo antes de llamar alclick()
método. Ejemplo:Lea más sobre el método de clic aquí:
https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/click
fuente
elm.dispatchEvent(new Event('change'));
verificar:
desmarcar:
fuente
Podemos marcar una casilla de verificación de partículas como,
y desmarcar,
fuente
Me gustaría señalar que establecer el atributo 'marcado' en una cadena no vacía conduce a una casilla marcada.
Entonces, si establece el atributo 'marcado' en "falso" , la casilla de verificación estará marcada. Tuve que establecer el valor en la cadena vacía, nulo o el valor booleano falso para asegurarme de que la casilla de verificación no estuviera marcada.
fuente
Prueba esto:
fuente
fuente
fuente
Si, por alguna razón, no desea (o no puede) ejecutar un
.click()
elemento en la casilla de verificación, simplemente puede cambiar su valor directamente a través de su propiedad .checked (un atributo IDL de<input type="checkbox">
).Tenga en cuenta que hacerlo no activa el evento normalmente relacionado ( cambio ), por lo que deberá activarlo manualmente para tener una solución completa que funcione con cualquier controlador de eventos relacionado.
Aquí hay un ejemplo funcional en javascript sin procesar (ES6):
Si ejecuta esto y hace clic en la casilla de verificación y en el botón, debería tener una idea de cómo funciona.
Tenga en cuenta que usé document.querySelector por brevedad / simplicidad, pero esto podría construirse fácilmente para que se le pase una ID dada al constructor, o podría aplicarse a todos los botones que actúan como etiquetas de aria para una casilla de verificación (tenga en cuenta que no se molestó en configurar una identificación en el botón y darle a la casilla de verificación un aria-labelledby, que debe hacerse si se usa este método) o cualquier otra forma de expandir esto. Los dos últimos
addEventListener
s son solo para demostrar cómo funciona.fuente
Para un solo cheque intente
para múltiples intentos
Mostrar fragmento de código
fuente
Estoy de acuerdo con las respuestas actuales, pero en mi caso no funciona, espero que este código ayude a alguien en el futuro:
fuente