Obtenir la valeur sélectionnée de l'élément d'une liste déroulante à l'aide de jQuery

Comment puis-je obtenir la valeur sélectionnée d'une liste déroulante en utilisant jQuery?
J'ai essayé d'utiliser

var value = $('#dropDownId').val();

Et

var value = $('select#dropDownId option:selected').val();

Mais les deux renvoient une chaîne vide.

384
demandé sur Arslan Ali 2010-05-06 15:08:51

28 réponses

Pour sélectionner des éléments dom uniques, pour obtenir la valeur actuellement sélectionnée:

$('#dropDownId').val();

Pour obtenir le texte actuellement sélectionné:

$('#dropDownId :selected').text();
735
répondu Peter McG 2010-05-06 20:35:23
var value = $('#dropDownId:selected').text()

Devrait fonctionner correctement, voir cet exemple:

$(document).ready(function(){ 
  $('#button1').click(function(){ 
    alert($('#combo :selected').text());
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="combo">
  <option value="1">Test 1</option>
  <option value="2">Test 2</option>
</select>
<input id="button1" type="button" value="Click!" />
54
répondu Nick Reeve 2015-07-01 05:48:16

Essayez cette jQuery,

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

Ou ce javascript,

 var selID=document.getElementById("ddlid");
 var text=selID.options[selID.selectedIndex].text;

Si vous devez accéder à la valeur et non au texte, essayez d'utiliser la méthode val() au lieu de text().

Consultez les liens de violon ci-dessous.

Demo1 | Demo2

18
répondu Lucky 2015-09-02 06:28:15

Essayez ceci

$("#yourDropdown option:selected").text();
14
répondu Kvadiyatar 2013-03-12 10:32:56

Je sais que c'est un post terriblement ancien et je devrais probablement être fouetté pour cette résurrection pitoyable, mais je pensais partager quelques petits extraits JS très utiles que j'utilise dans toutes les applications de mon arsenal...

Si vous tapez:

$("#selector option:selected").val() // or
$("#selector option:selected").text()

Vieillit, essayez d'ajouter ces petits crumpets à votre fichier global *.js:

function soval(a) {
    return $('option:selected', a).val();
}
function sotext(a) {
    return $('option:selected', a).text();
}

Et écrivez simplement soval("#selector"); ou sotext("#selector"); à la place! Obtenez encore plus chic en combinant les deux et en retournant un objet contenant à la fois le value et le text!

function so(a) {
    my.value = $('option:selected', a).val();
    my.text  = $('option:selected', a).text();
    return my;
}

Cela me permet d'économiser une tonne de temps précieux, surtout sur les applications lourdes!

12
répondu DevlshOne 2014-05-08 22:22:10

Encore un autre exemple testé:

<!DOCTYPE html>
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js">
</script>
<script>
$(document).ready(function(){
    $('#bonus').change(function() {
    alert($("#bonus option:selected").text());
  });  
});
</script>
</head>

<body>
<select id="bonus">
<option value="1">-$5000</option>
<option value="2">-$2500</option>
<option value="3">$0</option>
<option value="4">$1</option>
<option value="5">We really appreciate your work</option>
</select>
</body>
</html>
8
répondu J Slick 2013-10-11 19:55:29

Cela fera l'affaire

$('#dropDownId').val();
7
répondu Singleton 2013-03-03 07:12:03

Cela alertera la valeur sélectionnée. Code JQuery...

$(document).ready(function () {

        $("#myDropDown").change(function (event) {
            alert("You have Selected  :: "+$(this).val());
        });
    });

Code HTML...

<select id="myDropDown">
        <option>Milk</option>
        <option>Egg</option>
        <option>Bread</option>
        <option>Fruits</option>
    </select>
7
répondu Uthaiah 2014-05-23 05:51:11

Avez-vous fourni votre élément select avec un id?

<select id='dropDownId'> ...

Votre première déclaration devrait fonctionner!

3
répondu schaechtele 2010-05-06 11:15:18

Pour le texte sélectionné, utilisez:

value: $('#dropDownId :selected').text();

Pour la valeur sélectionnée utiliser:

value: $('#dropDownId').val();
3
répondu mahi 2016-01-19 00:17:58

Essayez ceci, il obtient la valeur:

$('select#myField').find('option:selected').val();

3
répondu Ângelo Rigo 2017-02-15 18:25:48

Le id qui a généré pour votre déroulant de contrôle dans le html sera dynamique. Utilisez donc l'id complet $('ct100_<Your control id>').val(). cela fonctionnera.

2
répondu VenkeHV 2013-07-03 08:23:12

, Ou si vous essayez :

$("#foo").find("select[name=bar]").val();

Je l'ai utilisé aujourd'hui et ça marche bien.

2
répondu SoLiD 2014-08-22 13:28:38

Utiliser

$('#dropDownId').find('option:selected').val()

Cela devrait fonctionner :)

2
répondu Namila 2015-10-23 10:01:25

Pour obtenir la valeur jquery de la liste déroulante, vous utilisez simplement la fonction ci-dessous qui vient d'être envoyée id et obtenez la valeur sélectionnée:

function getValue(id){
    var value = "";
    if($('#'+id)[0]!=undefined && $('#'+id)[0]!=null){
        for(var i=0;i<$('#'+id)[0].length;i++){
            if($('#'+id)[0][i].selected == true){
                if(value != ""){
                    value = value + ", ";
                }
                value = value + $('#'+id)[0][i].innerText;
            }
        }
    }
    return value;
}
2
répondu Virendra khade 2016-09-13 07:34:31

Je sais que c'est vieux mais je pense que je mets à jour ceci avec une réponse plus à jour

$( document ).on( 'change', '#combo', function () {
var prepMin= $("#combo option:selected").val();
 alert(prepMin);
});

J'espère que cela aide

1
répondu mindmyweb 2014-02-22 06:44:53
$("select[id$=dropDownId]").val()
  • Essayez ceci
1
répondu rakesh 2014-03-14 06:34:42

Utilisez l'un de ces codes

$('#dropDownId :selected').text();

Ou

$('#dropDownId').text();
1
répondu Bipin 2014-04-18 09:12:37

C'est ce qui fonctionne

    var value= $('option:selected', $('#dropDownId')).val();
1
répondu Shittu Joseph Olugbenga 2015-10-28 12:06:09
$("#selector <b>></b> option:selected").val()

Ou

$("#selector <b>></b> option:selected").text()

Codes ci-Dessus a bien fonctionné pour moi

1
répondu Stefan Kelchtermans 2016-12-09 13:23:28

Vous pouvez utiliser l'un de ces:

$(document).on('change', 'select#dropDownId', function(){

            var value = $('select#dropDownId option:selected').text();

            //OR

            var value = $(this).val();

});
0
répondu Suresh Burdak 2016-04-12 12:47:55

, Vous devez mettre comme ça.

$('[id$=dropDownId] option:selected').val();
0
répondu Arthur Salgado 2017-02-15 18:05:05

Essayez ceci:

 $('#dropDownId option').filter(':selected').text();     

 $('#dropDownId option').filter(':selected').val();
0
répondu saravanajd 2017-10-25 10:08:24

Utilisez la méthode ci-dessous pour obtenir la valeur sélectionnée lors du chargement de la page:

$(document).ready(function () {
$('#ddlid').on('change', function () {
                var value = $('#ddlid :selected').text();
                alert(value);`
            });
});
0
répondu UTHIRASAMY 2017-12-30 09:29:44

Vous pouvez le faire en utilisant le code suivant.

$('#dropDownId').val();

Si vous souhaitez obtenir la valeur sélectionnée à partir des options de la liste de sélection. Cela fera l'affaire.

$('#dropDownId option:selected').text();
0
répondu Dulith De Cozta 2018-05-16 12:13:06

	function fundrp(){
	var text_value = $("#drpboxid option:selected").text();  
	console.log(text_value);
	var val_text = $("#drpboxid option:selected").val();  
	console.log(val_text);
	var value_text = $("#drpboxid option:selected").attr("vlaue") ;
	console.log(value_text);
	var get_att_value = $("#drpboxid option:selected").attr("id") 
	console.log(get_att_value);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script>
<select id="drpboxid">
	<option id="1_one" vlaue="one">one</option>
	<option id="2_two" vlaue="two">two</option>
	<option id="3_three" vlaue="three">three</option>              
</select>
<button id="btndrp" onclick="fundrp()">Tracking Report1234</button>
0
répondu sakthi sudhan 2018-09-29 09:35:53
$("#dropDownId").val('2');
var SelectedValue= $("#dropDownId option:selected").text();
$(".ParentClass .select-value").html(SelectedValue);


<p class="inline-large-label button-height ParentClass" >
     <label for="large-label-2" class="label">Country <span style="color: Red;">*</span><small></small></label>
     <asp:DropDownList runat="server" ID="dropDownId " CssClass="select" Width="200px">          
    </asp:DropDownList>
</p>
-1
répondu Muddassir Irahad 2018-02-08 04:44:48

Cela devrait fonctionner pour vous

  $("#dropDownId").on('change',function(){
     var value=$(this).val();
     alert(value);
  });
-1
répondu mohamed ruzaik 2018-05-27 16:47:36