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.
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();
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!" />
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.
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!
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>
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>
Avez-vous fourni votre élément select avec un id?
<select id='dropDownId'> ...
Votre première déclaration devrait fonctionner!
Pour le texte sélectionné, utilisez:
value: $('#dropDownId :selected').text();
Pour la valeur sélectionnée utiliser:
value: $('#dropDownId').val();
Essayez ceci, il obtient la valeur:
$('select#myField').find('option:selected').val();
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.
, Ou si vous essayez :
$("#foo").find("select[name=bar]").val();
Je l'ai utilisé aujourd'hui et ça marche bien.
Utiliser
$('#dropDownId').find('option:selected').val()
Cela devrait fonctionner :)
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;
}
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
Utilisez l'un de ces codes
$('#dropDownId :selected').text();
Ou
$('#dropDownId').text();
C'est ce qui fonctionne
var value= $('option:selected', $('#dropDownId')).val();
$("#selector <b>></b> option:selected").val()
Ou
$("#selector <b>></b> option:selected").text()
Codes ci-Dessus a bien fonctionné pour moi
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();
});
, Vous devez mettre comme ça.
$('[id$=dropDownId] option:selected').val();
Essayez ceci:
$('#dropDownId option').filter(':selected').text();
$('#dropDownId option').filter(':selected').val();
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);`
});
});
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();
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>
$("#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>
Cela devrait fonctionner pour vous
$("#dropDownId").on('change',function(){
var value=$(this).val();
alert(value);
});