Comment puis-je obtenir la valeur sélectionnée dans une liste déroulante en utilisant JavaScript?
J'ai essayé les méthodes ci-dessous, mais elles renvoient toutes l'index sélectionné au lieu de la valeur:
var as = document.form1.ddlViewBy.value;
var e = document.getElementById("ddlViewBy");
var strUser = e.options[e.selectedIndex].value;
javascript
html-select
Main de feu
la source
la source
Réponses:
Si vous avez un élément select qui ressemble à ceci:
Exécution de ce code:
Ferait
strUser
être2
. Si ce que vous voulez réellementtest2
, c'est:Ce qui ferait
strUser
êtretest2
la source
onchange
:)var strUser = e.options[e.selectedIndex].value;
pourquoi pas seulementvar strUser = e.value ?
var e = document.getElementById("ddlViewBy").value;
e.target.options[e.target.selectedIndex].text
ne sais pas pourquoi c'est faux dans toutes les réponses ici ..JavaScript simple:
jQuery:
AngularJS : ( http://jsfiddle.net/qk5wwyct ):
la source
element.options[e.selectedIndex].value
doit êtreelement.options[element.selectedIndex].value
e.target.options[e.target.selectedIndex].text
ne sais pas pourquoi c'est faux dans toutes les réponses ici ..C'est correct et devrait vous donner la valeur. Est-ce le texte que vous recherchez?
Vous êtes donc clair sur la terminologie:
Cette option a:
la source
e.target.options[e.target.selectedIndex].text
ne sais pas pourquoi c'est faux dans toutes les réponses ici ..Le code suivant présente divers exemples liés à l'obtention / insertion de valeurs à partir de champs d'entrée / sélection à l'aide de JavaScript.
Lien source
Travail Javascript et JQuery Demo
Le script suivant obtient la valeur de l'option sélectionnée et la place dans la zone de texte 1
Le script suivant obtient une valeur d'une zone de texte 2 et envoie une alerte avec sa valeur
Le script suivant appelle une fonction à partir d'une fonction
la source
onchange=run(this.value)
ou(this.text)
peut être plus efficace.la source
Si vous rencontrez un code écrit uniquement pour Internet Explorer, vous pouvez voir ceci:
L'exécution de ce qui précède dans Firefox et al vous donnera une erreur «n'est pas une fonction», car Internet Explorer vous permet de vous en sortir en utilisant () au lieu de []:
La bonne façon est d'utiliser des crochets.
la source
Tout champ de saisie / formulaire peut utiliser un mot-clé «this» lorsque vous y accédez depuis l'intérieur de l'élément. Cela élimine le besoin de localiser un formulaire dans l'arborescence dom, puis de localiser cet élément à l'intérieur du formulaire.
la source
Les débutants sont susceptibles de vouloir accéder aux valeurs d'une sélection avec l'attribut NAME plutôt que l'attribut ID. Nous savons que tous les éléments de formulaire ont besoin de noms, même avant d'obtenir des identifiants.
Donc, j'ajoute le
getElementByName()
solution uniquement pour les nouveaux développeurs.NB. Les noms des éléments du formulaire devront être uniques pour que votre formulaire soit utilisable une fois publié, mais le DOM peut autoriser le partage d'un nom par plusieurs éléments. Pour cette raison, envisagez d'ajouter des ID aux formulaires si vous le pouvez, ou soyez explicite avec les noms des éléments de formulaire
my_nth_select_named_x
etmy_nth_text_input_named_y
.Exemple utilisant
getElementByName
:la source
Il existe deux façons de procéder, à l'aide de JavaScript ou de jQuery.
JavaScript:
OU
jQuery:
la source
Utilisez simplement
$('#SelectBoxId option:selected').text();
pour obtenir le texte comme indiqué$('#SelectBoxId').val();
pour obtenir la valeur d'index sélectionnéela source
Les réponses précédentes laissent encore place à l'amélioration en raison des possibilités, de l'intuitivité du code et de l'utilisation de
id
versusname
. On peut obtenir une lecture de trois données d'une option sélectionnée - son numéro d'index, sa valeur et son texte. Ce code simple, multi-navigateur, fait les trois:Démo en direct: http://jsbin.com/jiwena/1/edit?html,output .
id
devrait être utilisé à des fins de maquillage. À des fins de formulaire fonctionnel,name
est toujours valide, également en HTML5, et doit toujours être utilisé. Enfin, pensez à l'utilisation de crochets contre des crochets ronds à certains endroits. Comme cela a été expliqué précédemment, seules (les anciennes versions de) Internet Explorer acceptent les versions rondes partout.la source
Utilisation de jQuery:
la source
Une autre solution est:
la source
Exemple de fonctionnement:
Remarque: Les valeurs ne changent pas lorsque la liste déroulante est modifiée, si vous avez besoin de cette fonctionnalité, une modification onClick doit être implémentée.
la source
Vous pouvez utiliser
querySelector
.Par exemple
la source
J'ai une vision un peu différente de la façon d'y parvenir. Je fais généralement cela avec l'approche suivante (c'est un moyen plus facile et fonctionne avec tous les navigateurs pour autant que je sache):
la source
En 2015, dans Firefox , ce qui suit fonctionne également.
la source
Pour suivre les réponses précédentes, voici comment je le fais en monoplace. C'est pour obtenir le texte réel de l'option sélectionnée. Il existe déjà de bons exemples pour obtenir le numéro d'index. (Et pour le texte, je voulais juste montrer de cette façon)
Dans certains cas rares, vous devrez peut-être utiliser des parenthèses, mais ce serait très rare.
Je doute que ce processus soit plus rapide que la version à deux lignes. J'aime simplement consolider mon code autant que possible.
Malheureusement, cela récupère toujours l'élément deux fois, ce qui n'est pas idéal. Une méthode qui ne saisit l'élément qu'une seule fois serait plus utile, mais je ne l'ai pas encore compris, en ce qui concerne le faire avec une seule ligne de code.
la source
Voici une ligne de code JavaScript:
En supposant que le menu déroulant nommé liste
name="list"
et inclus dans un formulaire avec l'attribut namename="form1"
.la source
var as = document.form1.ddlViewBy.value;
..."Vous devez utiliser
querySelector
pour y parvenir. Cela standardise également la façon d'obtenir de la valeur à partir des éléments de formulaire.var dropDownValue = document.querySelector('#ddlViewBy').value;
Violon: https://jsfiddle.net/3t80pubr/
la source
Je ne sais pas si je suis celui qui ne répond pas à la question, mais cela a fonctionné pour moi: en utilisant un événement onchange () dans votre html, par exemple.
// javascript
Cela vous donnera la valeur de la liste déroulante sélectionnée par clic
la source
La façon la plus simple de le faire est:
la source
Voici un moyen simple de le faire dans une fonction onchange:
event.target.options[event.target.selectedIndex].dataset.name
la source
Faites juste:
document.getElementById('idselect').options.selectedIndex
Ensuite, vous obtiendrez une valeur d'index sélectionnée, en commençant par 0.
la source
Essayer
Afficher l'extrait de code
la source
Créez un menu déroulant avec plusieurs options (autant que vous le souhaitez!)
J'ai rendu un peu hilarant. Voici l'extrait de code:
yay l'extrait a fonctionné
la source