864 votes

Vérifier / décocher la case à cocher avec JavaScript

Comment peut-on cocher/décocher une case à cocher en utilisant JavaScript?

3 votes

1492voto

Alex Peattie Points 8754

JavaScript:

// Cocher
document.getElementById("checkbox").checked = true;

// Décocher
document.getElementById("checkbox").checked = false;

jQuery (1.6+):

// Cocher
$("#checkbox").prop("checked", true);

// Décocher
$("#checkbox").prop("checked", false);

jQuery (1.5-):

// Cocher
$("#checkbox").attr("checked", true);

// Décocher
$("#checkbox").attr("checked", false);

2 votes

En utilisant .prop ne semble pas fonctionner avec Jquery 1.11.2 dans Firefox avec des fichiers hébergés localement. .attr le fait. Je n'ai pas testé plus en détail. Voici le code : ``` personContent.find("[data-name='" + pass.name + "']").children('input').attr('checked', true); ```

3 votes

Devrions-nous plutôt utiliser attr ou prop ?

72 votes

Apparemment, .checked = true/false ne déclenche pas l'événement change :-\

230voto

franzjaeger Points 1117

Comportement important qui n'a pas encore été mentionné:

Définir le attribut checked par programmation ne déclenche pas l'événement change de la case à cocher.

Voyez par vous-même dans ce fiddle:
http://jsfiddle.net/fjaeger/L9z9t04p/4/

(Fiddle testé dans Chrome 46, Firefox 41 et IE 11)

La méthode click()

Un jour, vous pourriez vous retrouver à écrire du code qui dépend de l'événement étant déclenché. Pour vous assurer que l'événement se déclenche, appelez la méthode click() de l'élément de case à cocher, comme ceci:

document.getElementById('checkbox').click();

Cependant, cela bascule le statut de la case à cocher, au lieu de le définir de manière spécifique à true ou false. Rappelez-vous que l'événement change devrait seulement se déclencher lorsque l'attribut checked change effectivement.

Cela s'applique également à la manière jQuery: définir l'attribut en utilisant prop ou attr ne déclenche pas l'événement change.

Définition de checked à une valeur spécifique

Vous pourriez tester l'attribut checked avant d'appeler la méthode click(). Exemple:

function toggle(checked) {
  var elm = document.getElementById('checkbox');
  if (checked != elm.checked) {
    elm.click();
  }
}

Lire plus sur la méthode click ici:
https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/click

47voto

topherg Points 1739

Pour vérifier :

document.getElementById("id-of-checkbox").checked = true;

pour décocher :

document.getElementById("id-of-checkbox").checked = false;

5 votes

Cela ne changerait que l'attribut coché. Cependant, onclick et des événements similaires ne seront pas déclenchés.

22voto

AKS Points 239

Nous pouvons cocher une case à cocher particulière comme suit,

$('id de la case à cocher')[0].checked = true

et décocher par ,

$('id de la case à cocher')[0].checked = false

19voto

Syed Jamil Uddin Points 179

Essayez ceci :

//Vérifier
document.getElementById('checkbox').setAttribute('checked', 'checked');

//Décocher
document.getElementById('chk').removeAttribute('checked');

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X