Reputation: 6423
I am attempting to retrieve and set the selected value of a select element (drop down list) with jQuery.
for retrievel i have tried $("#myId").find(':selected').val()
, as well as $("#myId").val()
but both return undefined.
Any insight into this problem would be much appreciated.
Upvotes: 128
Views: 318438
Reputation: 441
Try this
$('#your_select_element_id').val('your_value').attr().add('selected');
Upvotes: -1
Reputation: 15
$( "#myId option:selected" ).text(); will give you the text that you selected in the drop down element. either way you can change it to .val(); to get the value of it . check the below coding
<select id="myId">
<option value="1">Mr</option>
<option value="2">Mrs</option>
<option value="3">Ms</option>`
<option value="4">Dr</option>
<option value="5">Prof</option>
</select>
Upvotes: 0
Reputation: 686
I know this is old but I just had a bear of a time with Razor, could not get it to work no matter how hard I tried. Kept coming back as "undefined" no matter if I used "text" or "html" for attribute. Finally I added "data-value" attribute to the option and it read that just fine.
<option value="1" data-value="MyText">MyText</option>
var DisplayText = $(this).find("option:selected").attr("data-value");
Upvotes: 0
Reputation: 313
When setting with JQM
, don't forget to update the UI
:
$('#selectId').val('newValue').selectmenu('refresh', true);
Upvotes: 4
Reputation: 342655
$('#myId').val()
should do it, failing that I would try:
$('#myId option:selected').val()
Upvotes: 8
Reputation: 2784
$("#myId").val()
should work if myid
is the select element id!
This would set the selected item: $("#myId").val('VALUE');
Upvotes: 4
Reputation: 11
Suppose you have created a Drop Down list using SELECT tag like as follows,
<select id="Country">
Now if you want to see what is the selected value from drop down using JQuery then, simply put following line to retrieve that value..
var result= $("#Country option:selected").text();
it will work fine.
Upvotes: 1
Reputation: 5131
to get/set the actual selectedIndex property of the select element use:
$("#select-id").prop("selectedIndex");
$("#select-id").prop("selectedIndex",1);
Upvotes: 251
Reputation: 78667
The way you have it is correct at the moment. Either the id of the select is not what you say or you have some issues in the dom.
Check the Id of the element and also check your markup validates at here at W3c.
Without a valid dom jQuery cannot work correctly with the selectors.
If the id's are correct and your dom validates then the following applies:
To Read Select Option Value
$('#selectId').val();
To Set Select Option Value
$('#selectId').val('newValue');
To Read Selected Text
$('#selectId>option:selected').text();
Upvotes: 154