Je voudrais faire quelque chose comme ceci pour cocher une case à cocher en utilisant jQuery :
$(".myCheckBox").checked(true);
ou
$(".myCheckBox").selected(true);
Est-ce qu'une telle chose existe ?
Utilisez [.prop()
][1] :
$('.myCheckbox').prop('checked', true);
$('.myCheckbox').prop('checked', false);
Si vous travaillez avec un seul élément, vous pouvez toujours accéder au [HTMLInputElement
][2] sous-jacent et modifier sa propriété [.checked
][3] :
$('.myCheckbox')[0].checked = true;
$('.myCheckbox')[0].checked = false;
L'avantage d'utiliser les méthodes .prop()
et .attr()
au lieu de cela est qu'elles fonctionnent sur tous les éléments correspondants.
La méthode .prop()
n'est pas disponible, vous devez donc utiliser [.attr()
][4].
$('.myCheckbox').attr('checked', true);
$('.myCheckbox').attr('checked', false);
Notez que c'est [l'approche utilisée par les tests unitaires de jQuery avant la version 1.6][5] et qu'elle est préférable à l'utilisation de $('.myCheckbox').removeAttr('checked');
car cette dernière modifiera, si la case était initialement cochée, le comportement d'un appel à [.reset()
][6] sur tout formulaire qui la contient - un changement de comportement subtil mais probablement malvenu.
Pour plus de contexte, une discussion incomplète des changements apportés à la gestion de l'attribut/de la propriété checked
lors de la transition de la 1.5.x à la 1.6 peut être trouvée dans les [notes de mise à jour de la version 1.6][7] et dans la section Attributs vs. propriétés de la [documentation de .prop()
][1].
[1] : https://api.jquery.com/prop [2] : https://developer.mozilla.org/en/docs/Web/API/HTMLInputElement [3] : https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement#Properties_checkbox_radio [4] : https://api.jquery.com/attr [5] : https://github.com/jquery/jquery/blob/1.5.2/test/unit/attributes.js#L157 [6] : https://developer.mozilla.org/en-US/docs/Web/API/HTMLFormElement.reset [7] : https://blog.jquery.com/2011/05/03/jquery-16-released/
Utilisez :
$(".myCheckbox").attr('checked', true); // Deprecated
$(".myCheckbox").prop('checked', true);
Et si vous voulez vérifier si une case à cocher est cochée ou non :
$('.myCheckbox').is(':checked');
Vous pouvez faire
$('.myCheckbox').attr('checked',true) //Standards compliant
ou
$("form #mycheckbox").attr('checked', true)
Si vous avez un code personnalisé dans l'événement onclick de la case à cocher que vous voulez déclencher, utilisez celui-ci à la place :
$("#mycheckbox").click();
Vous pouvez décocher la case en supprimant entièrement l'attribut :
$('.myCheckbox').removeAttr('checked')
Vous pouvez cocher toutes les cases à cocher comme ceci :
$(".myCheckbox").each(function(){
$("#mycheckbox").click()
});