Obtenez la valeur d'une liste déroulante dans jQuery


100

J'ai une liste déroulante qui a une paire «ID, nom».

Exemple

Jon Miller
Jim Smith
Jen Morsin

Jon MIller a un ID de 101
Jim Smith a un ID de 102
Jen Morsin a un ID de 103

Quand je fais ce qui suit:

var arNames = $('#Crd').val() 

et je sélectionne Jon Miller, j'obtiens 101. J'aimerais bien avoir Jon Miller.


Réponses:


185

$('#Crd').val()vous donnera la valeur sélectionnée de l'élément déroulant. Utilisez ceci pour obtenir le texte des options sélectionnées.

$('#Crd option:selected').text();

3
$ ('# Crd option: selected'). Text () ou $ ('# Crd option: selected'). Val (), .text vous donne la valeur du texte affiché, pas la valeur
patrick choi

$ ('# Option Crd: sélectionnée'). Val (); for value
asifaftab87

13

Le meilleur moyen est d'utiliser:

$("#yourid option:selected").text();

Selon les besoins, vous pouvez également utiliser cette méthode:

var v = $("#yourid").val();
$("#yourid option[value="+v+"]").text()

5

Si vous utilisez a <select>, .val()obtient la «valeur» du fichier sélectionné <option>. S'il n'a pas de value, il peut revenir au id. Mettez la valeur que vous souhaitez qu'il renvoie dans l' valueattribut de chaque<option>

Edit: Voir les commentaires pour clarifier ce valuequi est réellement (pas nécessairement égal à l' valueattribut).


1
Juste une clarification, .val () renvoie la propriété de valeur en direct et non la valeur d'attribut HTML.
Chad

Correct. Cependant, il n'y a pas de différence pratique dans ce cas car l'OP ne semble pas vouloir changer le values à aucun moment.
Ansel Santosa

2
.val() gets the 'value' attribute of the selected <option>, comme je l'ai dit: juste clarifier.
Chad

Que faire si j'ai besoin de l'index ou de l'identifiant plutôt que du texte?
bgmCoder

5

Cela a fonctionné pour moi!

$('#selected-option option:selected').val()

J'espère que cela aide quelqu'un!


3
var sal = $('.selectSal option:selected').eq(0).val();

selectSal est une classe.



2

Une autre option:

$("#<%=dropDownId.ClientID%>").children("option:selected").val();

0

Comme cela a été souligné ... dans une selectcase, l' .val()attribut vous donnera la valeur de l'option sélectionnée. Si l'option sélectionnée n'a pas d'attribut value, elle utilisera par défaut la valeur d'affichage de l'option (ce que les exemples de la documentation jQuery de.val show.

vous souhaitez utiliser .text()l'option sélectionnée:

$('#Crd option:selected').text()


0

Cela vous donne la valeur actuelle de la liste déroulante, si la liste déroulante a un ID de "someId".

$("#someId").val();

0

$('.leave_response').on('change', function() {
    var responseId = $(this).val();
    console.log(responseId);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<td>
    <select class="leave_response" name="leave">
        <option>1</option>
        <option>2</option>
        <option>3</option>
        <option>4</option>
    </select>
</td>


0

Passez l'identifiant et maintenez dans une variable et passez la variable où vous le souhaitez.

var temp = $ ('select [name = ID Name]'). val ();


$ ('sélectionnez l'option [nom = ID Nom]: sélectionnée'). val (); Celui-ci fonctionne également
Abhijit Patra
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.