$('#mySelectBox option').each(function() {
if ($(this).isChecked())
alert('this option is selected');
else
alert('this is not');
});
Apparemment, isChecked
cela ne fonctionne pas. Donc ma question est quelle est la bonne façon de faire cela? Merci.
this.selected
), vous devez contourner en utilisant jQuery ($(this).prop("selected")
) mais ils fonctionneront tous les deux pour vous.Réponses:
METTRE À JOUR
Une méthode jQuery plus directe à l'option sélectionnée serait:
Répondre à la question
.is(':selected')
est ce que vous recherchez:La manière non jQuery (sans doute la meilleure pratique) de le faire serait:
Cependant, si vous recherchez simplement la valeur sélectionnée, essayez:
Si vous recherchez le texte de la valeur sélectionnée, procédez comme suit:
Consultez: http://api.jquery.com/selected-selector/
La prochaine fois, recherchez les questions SO en double:
Obtenir l'option sélectionnée actuelle ou Définir l'option sélectionnée ou Comment obtenir l'option sélectionnée $ (this) dans jQuery? ou l' option [selected = true] ne fonctionne pas
la source
this.selected
peut être utilisé au lieu de$(this).is(":selected")
je suppose qu'il n'y a pas besoin d'un jsperf pour cela, non? Je n'ai rien contre l'utilisation de jQuery !, mais utilisez-le quand vous en avez besoin, pas quand il ne donne rien d'autre que des frais généraux et plus de code.this.selected
est complètement valide, mais il a demandé la bonne façon de le faire avec jQuery.Vous pouvez obtenir l'option sélectionnée de cette façon:
DÉMO EN DIRECT
Mais si vous voulez itérer toutes les options, faites-le avec
this.selected
au lieu dethis.isChecked
laquelle n'existe pas:DÉMO EN DIRECT
Mettre à jour:
Vous avez beaucoup de réponses vous suggérant d'utiliser ceci:
$(this).is(':selected')
Eh bien, cela peut être fait beaucoup plus rapidement et plus facilement,this.selected
alors pourquoi devriez-vous l'utiliser et non la méthode native de l'élément DOM?!Lisez Connaître vos propriétés et fonctions DOM dans les
jQuery
informations de balisela source
this.selected
. Je suis d'accord avec vos commentaires sur la surutilisation / abus de jQuery. Une partie de la connaissance de jQuery, c'est de savoir quand ne pas l' utiliser. Cela dit, gardez à l'esprit que le':selected'
sélecteur est un sélecteur Sizzle personnalisé, donc son utilisation désactive l'utilisation dequerySelectorAll
dans les navigateurs pris en charge. Ce n'est certainement pas la fin du monde, car il fournit un joli code court, mais j'ai personnellement tendance à éviter les trucs Sizzle uniquement.Si vous n'êtes pas familier ou à l'aise avec
is()
, vous pouvez simplement vérifier la valeur deprop("selected")
.Comme vu ici :
Modifier :
Comme @gdoron l'a souligné dans les commentaires, le moyen le plus rapide et le plus approprié d'accéder à la propriété sélectionnée d'une option est via le sélecteur DOM. Voici la mise à jour du violon affichant cette action.
semble fonctionner aussi bien! Merci gdoron.
la source
$(this).prop("selected")
place dethis.selected
?! qu'est-ce que ça te donne ??! ps I'm not the downvoter ...is
est le mieux utilisé mais j'aime accéder à mes propriétés par prop et attr. Dans la plupart des scénarios, ce n'est qu'une question de goût. Oui, il y a une curieuse éruption de vote à la baisse!jQuery
informations de balise . il n'y a aucune raison d'utiliser du code plus lent + plus de code pour faire des choses simples..is()
devrait être utilisé pour un sélecteur compliqué comme$(...).is('.foo > [name="aaa"] input') or for properties that are not native DOM elements properties like
$ (...). is (": visiable").$(this).is(':selected')
soit acceptée. Stackoverflow devrait être utilisé pour apprendre les meilleures pratiques, pas les erreurs courantes ...)Vous pouvez utiliser cette méthode par jquery:
la source
utilisation
pour tester si c'est une option particulière
myoption
:la source
myoption
???Considérez ceci comme votre liste de sélection:
puis vous cochez l'option sélectionnée comme ceci:
la source
Dans mon cas, je ne sais pas pourquoi sélectionné est toujours vrai. Donc, la seule façon que j'ai pu imaginer est:
la source
Si vous souhaitez uniquement vérifier si une option est sélectionnée, vous n'avez pas besoin de parcourir toutes les options. Fais juste
Remarque: Si vous avez une option avec valeur = 0 que vous souhaitez sélectionner, vous devez modifier la condition if en
$('#mySelectBox').val() != null
la source
Si vous devez vérifier l'état de l'option sélectionnée pour une valeur spécifique :
la source
Si vous souhaitez vérifier l'option sélectionnée via javascript
La méthode la plus simple consiste à ajouter un attribut onchange dans cette balise et à définir une fonction dans le fichier js voir un exemple si votre fichier html a des options comme celle-ci
Et maintenant, ajoutez une fonction dans le fichier js
Si vous souhaitez vérifier l'option sélectionnée dans le fichier php
Donnez simplement l'attribut name dans votre balise et accédez-y au fichier php global variables / array ($ _GET ou $ _POST) voir un exemple si votre fichier html est quelque chose comme ça
Et dans votre fichier php validation.php vous pouvez accéder comme ceci
la source