Je dois vérifier la checked
propriété d'une case à cocher et effectuer une action basée sur la propriété vérifiée à l'aide de jQuery.
Par exemple, si la case à cocher Âge est cochée, je dois afficher une zone de texte pour entrer l'âge, sinon masquer la zone de texte.
Mais le code suivant retourne false
par défaut:
if ($('#isAgeSelected').attr('checked'))
{
$("#txtAge").show();
}
else
{
$("#txtAge").hide();
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="checkbox" id="isAgeSelected"/>
<div id="txtAge" style="display:none">
Age is selected
</div>
Comment interroger avec succès la checked
propriété?
javascript
jquery
html
checkbox
Prasad
la source
la source
$('#isAgeSelected').checked
$('#isAgeSelected')[0].checked
Réponses:
La
checked
propriété d'un élément DOM de case à cocher vous donnera l'checked
état de l'élément.Compte tenu de votre code existant, vous pouvez donc faire ceci:
Cependant, il existe une façon beaucoup plus jolie de le faire, en utilisant
toggle
:la source
is(':checked')
entreprise.this.checked
n'est pas jQuery, comme l'OP l'a demandé. En outre, cela ne fonctionne que lorsque l'utilisateur clique sur la case à cocher, qui ne fait pas partie de la question. La question est, encore une fois,How to check whether a checkbox is checked in jQuery?
à tout moment avec ou sans cocher la case et dans jQuery.Utilisez la fonction is () de jQuery :
la source
$("#txtAge").toggle($("#isAgeSelected").is(':checked'))
.visible
"propriété" ( propriété ? vous voulez dire méthode ?) car l'élément no HTML a une propriété visible . Ils ont unedisplay
propriété de style et c'est un peu plus complexe que l'activation / désactivation.Utilisation de jQuery> 1.6
En utilisant la nouvelle méthode de propriété:
la source
.prop
méthode est le moyen conçu pour vérifier les accessoires. .. ... Si vous allez faire l'.is(":checked")
approche, c'est bien, mais ce n'est pas la manière conçue de le faire en utilisant jquery. droite?.is(":checked")
et.prop("checked")
sont deux moyens valides d'obtenir le même résultat dans jQuery,.is
fonctionneront dans toutes les versions,.prop
nécessite 1.6+.attr('checked')
dans jQuery 1.11.3, vous obtenez indéfini, où si vous utilisez.prop('checked')
, vous obtiendrez true / false. Je ne vois pas pourquoi ils l'ont changé pour fonctionner de cette façon lorsque les anciens navigateurs ne peuvent pas prendre en charge les versions ultérieures de jQuery introduites.prop()
et donc nécessaires.attr()
. La seule grâce qui sauve est que les anciens navigateurs (ie IE 8) ne peuvent rien supporter> jQuery 1.9. J'espère qu'ils ne l'ont pas fait (make.attr('checked')
= undefined) dans cette version! Heureusement, il y en a toujoursthis.checked
.jQuery 1.6+
jQuery 1.5 et inférieur
Toute version de jQuery
Tout le mérite revient à Xian .
la source
this.checked
utilise du Javascript simple. Mais j'adore cette réponse croisée en version jQuery!J'utilise ceci et cela fonctionne très bien:
Remarque: Si la case est cochée, elle renverra true sinon indéfini, il vaut donc mieux vérifier la valeur "TRUE".
la source
.attr()
! Si seulement ils venaient de laisser assez bien seuls ... J'ai trouvé une autre réponse ici, que vous pouvez simplement utiliserthis.checked
pour une solution cross-jQuery, car il s'agit simplement de Javascript.Utilisation:
la source
Depuis jQuery 1.6, le comportement de
jQuery.attr()
a changé et les utilisateurs sont encouragés à ne pas l'utiliser pour récupérer l'état vérifié d'un élément. Au lieu de cela, vous devez utiliserjQuery.prop()
:Deux autres possibilités sont:
la source
Cela a fonctionné pour moi:
Où
isAgeSelected
est l'id du contrôle.De plus, la réponse de @ karim79 fonctionne très bien. Je ne suis pas sûr de ce que j'ai manqué au moment où je l'ai testé.
Remarque, cette réponse utilise Microsoft Ajax, pas jQuery
la source
== true
Si vous utilisez une version mise à jour de jquery, vous devez rechercher une
.prop
méthode pour résoudre votre problème:$('#isAgeSelected').prop('checked')
reviendratrue
s'il est coché etfalse
s'il n'est pas coché . Je l'ai confirmé et je suis tombé sur ce problème plus tôt.$('#isAgeSelected').attr('checked')
et$('#isAgeSelected').is('checked')
revientundefined
ce qui n'est pas une réponse digne de la situation. Faites comme indiqué ci-dessous.J'espère que ça aide:) - Merci.
la source
$('#isAgeSelected').checked
?L'utilisation du
Click
gestionnaire d'événements pour la propriété de case à cocher n'est pas fiable, car lachecked
propriété peut changer pendant l'exécution du gestionnaire d'événements lui-même!Idéalement, vous voudriez mettre votre code dans un
change
gestionnaire d'événements tel qu'il est déclenché chaque fois que la valeur de la case à cocher est modifiée (indépendamment de la façon dont cela est fait).la source
.on()
méthode est la méthode préférée pour attacher des gestionnaires d'événements à un document.Utilisation:
Cela peut être utile si vous souhaitez que l'action requise ne soit effectuée que lorsque vous cochez la case, pas au moment où vous supprimez la coche.
la source
J'ai décidé de poster une réponse sur la façon de faire exactement la même chose sans jQuery. Tout simplement parce que je suis un rebelle.
Vous obtenez d'abord les deux éléments par leur ID. Ensuite, vous affectez à l'
onchange
événement de la case à cocher une fonction qui vérifie si la case à cocher a été cochée et définit lahidden
propriété du champ de texte d'âge de manière appropriée. Dans cet exemple, en utilisant l'opérateur ternaire.Voici un violon pour le tester.
Addenda
Si la compatibilité entre les navigateurs est un problème, je propose de définir la
display
propriété CSS sur none et inline .Plus lent mais compatible avec tous les navigateurs.
la source
.hidden
n'est pas très cross-browser, même si j'aime bien cette solution :)style
. C'est dommage, car les.hidden
performances sont bien meilleures .Je pense que vous pourriez faire ceci:
la source
J'ai rencontré exactement le même problème. J'ai une case à cocher ASP.NET
Dans le code jQuery, j'ai utilisé le sélecteur suivant pour vérifier si la case était cochée ou non, et cela semble fonctionner comme un charme.
Je suis sûr que vous pouvez également utiliser l'ID au lieu de la classe Css,
J'espère que ceci vous aide.
la source
Il existe plusieurs façons de vérifier si une case est cochée ou non:
Façon de vérifier en utilisant jQuery
Vérifiez l'exemple ou documentez également:
http://api.jquery.com/attr/
http://api.jquery.com/prop/
la source
Ce code vous aidera
la source
Cela fonctionne pour moi:
la source
Voici une méthode différente pour faire la même chose:
la source
Utilisez ceci:
La longueur est supérieure à zéro si la case est cochée.
la source
Ma façon de procéder est la suivante:
la source
Cela retourne
true
si l'entrée est vérifiée etfalse
si ce n'est pas le cas.la source
.attr('checked')
que le fait qu'il ne retourne pas toujours l'état correct. Selon la réponse de Salman A (et peut-être d'autres), c'est une option plus sûre à utiliser à la place. En outre, il est également possible de déclarer comme ..prop('checked')
undefined
var undefined = 'checked';
.prop('checked')
semble une meilleure réponse maintenant. Ce n'était pas aussi fiable au moment où il a été écrit. Je ne comprends pas et je ne pense pas que ce soit une bonne idée de redéclarer undefined.typeof (x) !== "undefined"
la source
Vous pouvez utiliser:
Les deux devraient fonctionner.
la source
1) Si votre balisage HTML est:
attr utilisé:
Si l'hélice est utilisée:
2) Si votre balisage HTML est:
attr utilisé:
Prop utilisé:
la source
Cet exemple concerne le bouton.
Essayez ce qui suit:
la source
La meilleure réponse ne l'a pas fait pour moi. Cela a cependant:
Fondamentalement, lorsque l'élément # li_13 est cliqué, il vérifie si l'élément # d'accord (qui est la case à cocher) est vérifié en utilisant la
.attr('checked')
fonction. S'il l'est, alors fadeIn l'élément #saveForm, et sinon fadeOut, l'élément saveForm.la source
J'utilise ceci:
la source
Bien que vous ayez proposé une solution JavaScript pour votre problème (affichant un
textbox
quand uncheckbox
estchecked
), ce problème pourrait être résolu simplement par css . Avec cette approche, votre formulaire fonctionne pour les utilisateurs qui ont désactivé JavaScript.En supposant que vous disposez du code HTML suivant:
Vous pouvez utiliser le CSS suivant pour obtenir la fonctionnalité souhaitée:
Pour d'autres scénarios, vous pouvez penser à des sélecteurs CSS appropriés.
Voici un violon pour démontrer cette approche .
la source
Basculer: 0/1 ou autre
la source
Je pense que ce sera simple
la source