Comment une case à cocher peut-elle être cochée / décochée en utilisant JavaScript, jQuery ou vanilla?
javascript
jquery
checkbox
lisovaccaro
la source
la source
Réponses:
Javascript:
jQuery (1.6+):
jQuery (1.5-):
la source
attr
ouprop
?.checked = true/false
ne déclenche pas l'change
événement: - \Comportement important qui n'a pas encore été mentionné:
La définition par programme de l' attribut vérifié ne déclenche pas l'
change
événement de la case à cocher .Voyez par vous-même dans ce violon:
http://jsfiddle.net/fjaeger/L9z9t04p/4/
(Fiddle testé dans Chrome 46, Firefox 41 et IE 11)
La
click()
méthodeUn jour, vous pourriez vous retrouver à écrire du code, qui dépend du déclenchement de l'événement. Pour vous assurer que l'événement se déclenche, appelez le
click()
méthode de l'élément checkbox, comme ceci:Cependant, cela bascule l'état vérifié de la case à cocher, au lieu de la définir spécifiquement sur
true
oufalse
. N'oubliez pas que l'change
événement ne doit se déclencher que lorsque l'attribut vérifié change réellement.Cela s'applique également à la méthode jQuery: définition de l'attribut à l'aide
prop
ouattr
ne déclenche pas l'change
événement.Définition
checked
d'une valeur spécifiqueVous pouvez tester le
checked
attribut avant d'appeler laclick()
méthode. Exemple:En savoir plus sur la méthode de clic ici:
https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/click
la source
elm.dispatchEvent(new Event('change'));
vérifier:
à décocher:
la source
Nous pouvons cocher une case à cocher comme,
et décochez par,
la source
Je voudrais noter que la définition de l'attribut «vérifié» sur une chaîne non vide conduit à une case cochée.
Donc, si vous définissez l'attribut «vérifié» sur «faux» , la case à cocher sera cochée. J'ai dû définir la valeur sur la chaîne vide, null ou la valeur booléenne false afin de m'assurer que la case à cocher n'était pas cochée.
la source
Essaye ça:
la source
la source
la source
Si, pour une raison quelconque, vous ne voulez pas (ou ne pouvez pas) exécuter un
.click()
élément sur la case à cocher, vous pouvez simplement changer sa valeur directement via sa propriété .checked (un attribut IDL de<input type="checkbox">
).Notez que cela ne déclenche pas l'événement normalement lié ( modification ), vous devrez donc le déclencher manuellement pour avoir une solution complète qui fonctionne avec tous les gestionnaires d'événements associés.
Voici un exemple fonctionnel en javascript brut (ES6):
Si vous exécutez cela et cliquez sur la case à cocher et sur le bouton, vous devriez avoir une idée de comment cela fonctionne.
Notez que j'ai utilisé document.querySelector pour la brièveté / simplicité, mais cela pourrait facilement être construit pour avoir un ID donné transmis au constructeur, ou il pourrait s'appliquer à tous les boutons qui agissent comme des étiquettes aria pour une case à cocher (notez que je n'a pas pris la peine de définir un identifiant sur le bouton et de donner à la case à cocher un aria-labelledby, ce qui devrait être fait si vous utilisez cette méthode) ou un certain nombre d'autres façons de l'étendre. Les deux derniers
addEventListener
s sont juste pour démontrer comment cela fonctionne.la source
Pour un contrôle unique, essayez
pour plusieurs essais
Afficher l'extrait de code
la source
Je suis d'accord avec les réponses actuelles, mais dans mon cas cela ne fonctionne pas, j'espère que ce code aidera quelqu'un à l'avenir:
la source