jQuery to retrieve and set selected option value of html select element


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.

12/18/2018 8:05:56 PM

Accepted Answer

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


To Set Select Option Value


To Read Selected Text

8/3/2009 12:18:36 PM

$('#myId').val() should do it, failing that I would try:

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

When setting with JQM, don't forget to update the UI:

$('#selectId').val('newValue').selectmenu('refresh', true);

$("#myId").val() should work if myid is the select element id!

This would set the selected item: $("#myId").val('VALUE');


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.


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");

Licensed under: CC-BY-SA with attribution
Not affiliated with: Stack Overflow
Email: [email protected]