Paramètre “checked” pour une case à cocher avec jQuery?
J'aimerais faire quelque chose comme cela de cocher une checkbox
à l'aide de jQuery:
$(".myCheckBox").checked(true);
ou
$(".myCheckBox").selected(true);
Une telle chose existe?
- Un autre, plus précis (et très utile!) question, "Comment puis-je vérifier un élément dans une case à cocher PAR la VALEUR?", Je pense que nous pouvons aussi discuter ici, et j'ai posté une réponse ci-dessous.
- Vérifier d'autres façons de le faire à l'aide de jQuery ici stackoverflow.com/a/22019103/1868660
- Si vous avez besoin de l'événement onchange déclenché, c'est
$("#mycheckbox").click();
- "La vérification de quelque chose", suggère de le tester, donc je pense que "Faire une case cochée" est une façon plus claire et de meilleure le titre.
- prop(); la fonction est la réponse parfaite. Voir la définition de fonction - api.jquery.com/prop
- attr() n'est pas un travail avec IE. à l'aide de prop() est la meilleure option
Vous devez vous connecter pour publier un commentaire.
jQuery 1.6+
Utiliser le nouveau
.prop()
méthode:jQuery 1.5.x et au-dessous de
La
.prop()
méthode n'est pas disponible, vous devrez utiliser.attr()
.Noter que c'est l'approche utilisée par jQuery tests unitaires avant la version 1.6 et est préférable à l'utilisation
depuis ce dernier, si la zone a d'abord été vérifié, changer le comportement d'un appel à
.reset()
d'un formulaire qui contient un subtil mais sans doute malvenu de changement de comportement.Pour plus de contexte, certains incomplète discussion des changements à la gestion de la
checked
attribut/propriété de la transition de la 1.5.x 1,6 peut être trouvé dans la la version 1.6 notes de version et la Attributs vs Propriétés section de la.prop()
de la documentation.N'importe quelle version de jQuery
Si vous travaillez avec un seul élément, vous pouvez toujours modifier le
HTMLInputElement
's.checked
propriété:L'avantage à l'utilisation de la
.prop()
et.attr()
méthodes au lieu de cela, c'est qu'ils fonctionnent sur tous les éléments qui correspondent.DOMElement.checked = true
". Mais il serait négligeable, parce que c'est seulement un élément...$(element).prop('checked')
est une perte complète de la saisie.element.checked
existe et doit être utilisé dans le cas où vous avez déjàelement
$('.myCheckbox').removeAttr('checked');
ne fonctionnera pas une fois que l'utilisateur a cliqué sur la case à cocher. Au lieu de cela, voir ma réponse stackoverflow.com/a/5916151/696056$('.myCheckbox')[0].checked=true
et de prendre un coup d'oeil à celui-ci: stackoverflow.com/q/5907645#answer-5907877.change(...)
gestionnaire j'avais mis en place, j'ai juste ajouté le:$(this).attr('checked',!this.checked).change()
event.preventDefault()
et d'autres trucs personnes suggéré dans d'autres réponses.change
événement. Ajouter.trigger('change')
si nécessaireUtilisation:
Et si vous voulez vérifier si une case est cochée ou non:
C'est la bonne façon de vérifier et en décochant les cases à cocher avec jQuery, comme il est multi-plateforme standard, et sera permettre à la forme reposte.
En faisant cela, vous êtes à l'aide de JavaScript normes de vérification et de décocher les cases à cocher, donc n'importe quel navigateur qui met en place la "vérifié" propriété de la case à cocher élément d'exécuter ce code à la perfection. Cette devrait être tous les principaux navigateurs, mais je suis incapable de test précédent sur Internet Explorer 9.
Le Problème (jQuery 1.6):
Une fois qu'un utilisateur clique sur une case, cette case à cocher cesse de répondre à la "vérifié" les changements d'attribut.
Voici un exemple de la case de l'attribut à défaut de faire le travail, après que quelqu'un a cliqué la case (ce qui se passe dans Chrome).
Violon
La Solution:
En utilisant du JavaScript "vérifié" bien sur la DOM éléments, nous sommes en mesure de résoudre le problème directement, au lieu d'essayer de manipuler le DOM en faisons ce que nous voulez à faire.
Violon
Ce plugin modifie la propriété checked de tous les éléments sélectionnés par jQuery, et avec succès cocher et décocher les cases dans toutes les circonstances. Donc, même si cela peut sembler comme une sur-solution de roulement, il fera de votre site de l'expérience utilisateur de mieux, et aider à prévenir la frustration de l'utilisateur.
Alternativement, si vous ne voulez pas utiliser un plugin, vous pouvez utiliser les extraits de code suivants:
removeAttr('checked')
plutôt queattr('checked', false)
checked
des modifications d'attributs, peu importe de la méthode utilisée pour les changer.$('.myCheckBox').prop('checked', true)
De cette façon, il applique automatiquement à l'ensemble des éléments qui correspondent (uniquement lors de la configuration, devenir est encore que le premier)prop
est certainement le moyen le plus approprié pour définir les attributs d'un élément.Vous pouvez faire
ou
Si vous avez personnalisé le code dans l'événement onclick de la case que vous voulez incendie, utiliser à la place:
Vous pouvez décocher par la suppression de l'attribut entièrement:
Vous pouvez cocher toutes les cases comme ceci:
$(".myCheckbox").click()
.attr
au lieu de.prop
.$("#mycheckbox").click();
a fonctionné pour moi alors que j'écoutais à l'événement de changement de trop et.attr
&.prop
n'a pas le feu à modifier l'événement.Vous pouvez également étendre l' $.fn objet avec de nouvelles méthodes:
Alors vous pouvez simplement faire:
Ou vous pouvez leur donner plus de noms uniques comme mycheck() et myuncheck() dans le cas où vous utilisez une autre bibliothèque qui utilise ces noms.
.attr
au lieu de.prop
.Le dernier déclenche l'événement click pour la case, les autres pas.
Donc, si vous avez un code personnalisé dans l'événement onclick de la case que vous voulez incendie, utiliser le dernier.
.attr
au lieu de.prop
.De cocher une case à cocher, vous devez utiliser
ou
et de décocher une case à cocher, vous devez toujours mettre à false:
Si vous ne
il supprime l'attribut tous ensemble et, par conséquent, vous ne serez pas en mesure de réinitialiser le formulaire.
MAUVAISE DÉMO jQuery 1.6. Je pense que c'est cassé. Pour la 1.6 je vais faire un nouveau post sur ce.
NOUVEAU DEMO jQuery 1.5.2 fonctionne dans Chrome.
Deux démos utilisation
$(".mycheckbox").prop("checked", true/false)
.attr()
avec les attributs de type boolean -- bien que je souhaite que nous n'aurions pas -- Lire: forum.jquery.com/topic/prop-attr-rewrite-again.attr
a été le mal approche à ce problème depuis plus de deux ans maintenant.Cette sélectionne les éléments dont l'attribut spécifié avec une valeur contenant la sous-chaîne "ckbItem":
Il va sélectionner tous les éléments qui contiennent ckbItem dans son attribut name.
En supposant que la question est...
Comment puis-je vérifier un case-set EN VALEUR?
Rappelez-vous que, dans un typique jeu de cases à cocher, toutes les balises input ont le même nom, ils diffèrent par l'attribut
value
: il n'y a pas d'ID pour chaque entrée de l'ensemble.Xian, la réponse peut être étendue avec une plus spécifiques sélecteur de, à l'aide de la ligne de code suivante:
Je suis absent la solution. Je vais toujours utiliser:
.val()
retournera toujoursundefined
lorsqu'il est appelé sur 0 éléments de détecter qu'un objet jQuery est vide, lorsque vous pouvez simplement vérifier son.length
à la place) - voir stackoverflow.com/questions/901712/... pour plus lisible approches.De cocher une case à l'aide de jQuery 1.6 ou plus simplement faire ceci:
De décocher, utilisation:
Ici' s ce que j'aime à utiliser pour basculer d'une case à cocher à l'aide de jQuery:
Si vous utilisez jQuery 1.5 ou inférieur:
De décocher, utilisation:
Ici est une façon de le faire sans jQuery
JS:
HTML:
Essayez ceci:
Voici le code pour activée et désactivée avec un bouton:
Mise à jour: Ici, c'est le même bloc de code à l'aide de la plus récente Jquery 1.6+ prop méthode, qui remplace attr:
.attr
au lieu de.prop
.Nous pouvons utiliser
elementObject
avec jQuery pour obtenir l'attribut checked:Nous pouvons l'utiliser pour toutes les versions de jQuery sans aucune erreur.
Mise à jour: Jquery 1.6+ a la nouvelle prop méthode qui remplace attr, par exemple:
.attr
au lieu de.prop
.Si vous utilisez PhoneGap faire le développement de l'application, et vous avez une valeur sur le bouton que vous souhaitez afficher instantanément, n'oubliez pas de faire ce
J'ai trouvé que, sans la durée, l'interface ne sera pas mise à jour, peu importe ce que vous faites.
Voici le code et de démonstration pour savoir comment vérifier plusieurs cases à cocher...
http://jsfiddle.net/tamilmani/z8TTt/
$("#check")
avec des API DOM appels commedocument.getElementsByTagName("input")
semble peu élégante pour moi, d'autant plus que lefor
boucles d'ici pourraient être évitées par l'utilisation de.prop()
. Peu importe c'est encore une autre réponse tardive qui n'ajoute rien de nouveau.Une autre solution possible:
Si l'utilisation du mobile et que vous souhaitez que l'interface de mise à jour et de montrer la case, la case est décochée, utilisez la commande suivante:
Être au courant de fuites de mémoire dans Internet Explorer antérieures à la Internet Explorer 9, comme le jQuery documentation:
.prop('checked',true)
.Pour jQuery 1.6+
Pour jQuery 1.5.x et au-dessous de
Pour vérifier,
À cocher et décocher
Comme @livefree75 dit:
jQuery 1.5.x et au-dessous de
Vous pouvez également étendre l' $.fn objet avec de nouvelles méthodes:
Mais dans les nouvelles versions de jQuery, nous avons utiliser quelque chose comme ceci:
jQuery 1.6+
Alors vous pouvez simplement faire:
C'est probablement la plus courte et la solution la plus simple:
ou
Encore plus courte serait:
Ici est un jsFiddle ainsi.
Plaine JavaScript est très simple et beaucoup moins de frais généraux:
Exemple ici
Je ne pouvais pas le faire fonctionner à l'aide de:
À la fois vrai et faux aurait cochez la case correspondante. Ce qui a fonctionné pour moi a été:
true
etfalse
et pas'true'
et'false'
?'false'
a été converti à la valeur booléenne qui a abouti àtrue
- chaîne vide évalue àfalse
donc "travaillé". Voir ce violon par exemple de ce que je veux dire.Lorsque vous avez coché une case à cocher comme;
il pourrait ne pas être suffisante. Vous devez également appeler la fonction ci-dessous;
En particulier lorsque vous avez supprimé la case cochée attribut.
Voici la réponse complète
à l'aide de jQuery
Je l'ai tester et il fonctionne à 100% 😀
En jQuery,
ou
En JavaScript,
.attr
au lieu de.prop
.Dans le cas où vous utilisez ASP.NET MVC, de générer de nombreuses cases à cocher et d'avoir plus tard pour sélectionner/désélectionner toutes les à l'aide de JavaScript, vous pouvez effectuer les opérations suivantes.
HTML
JavaScript
Cela peut aider quelqu'un.
HTML5
JavaScript.
Vous pouvez essayer ceci:
JS:
HTML:
.attr
au lieu de.prop
.Si vous arrive d'être en utilisant Bootstrap (peut-être unawarely) ...
http://www.bootstraptoggle.com/
Si vous utilisez
.prop('checked', true|false)
et n'ont pas changé case, vous avez besoin d'ajoutertrigger('click')
comme ceÉdité à 2019 janvier
Vous pouvez utiliser: .prop( propertyName ) - version a ajouté: 1.6
CSS:
HTML:
Sur Angulaire Cadre
Exemple 1
Dans votre .fichier html
Dans votre .fichier ts
Exemple 2
Dans votre .fichier html
Vous pouvez cocher la case cochée condition à l'aide de JS de différentes manières. vous pouvez voir ci-dessous.
Première Méthode -
$('.myCheckbox').prop('checked', true);
Deuxième Méthode -
$('.myCheckbox').attr('checked', true);
Troisième Méthode (pour vérifier la condition si la case est cochée ou non) -
$('.myCheckbox').is(':checked')
Pour l'ensemble de l':