To get the selected value from a dropdown list (HTML <select> element) using JavaScript, you can use the value property of the <select> element. Here’s how to do it:
1. Basic Method
HTML:
<select id="mySelect">
<option value="1">Option 1</option>
<option value="2">Option 2</option>
<option value="3">Option 3</option>
</select>
JavaScript:
// Get the selected value
const selectElement = document.getElementById("mySelect");
const selectedValue = selectElement.value;
console.log(selectedValue); // e.g., "2" (the value of the selected option)
2. Get the Display Text (Not the Value)
To retrieve the text of the selected option (e.g., “Option 2”):
const selectedText = selectElement.options[selectElement.selectedIndex].text;
console.log(selectedText); // e.g., "Option 2"
3. Listen for Selection Changes
Use the change event to update when the user selects a new option:
selectElement.addEventListener("change", function() {
console.log("New value:", this.value);
console.log("New text:", this.options[this.selectedIndex].text);
});
4. Example with a Button
<select id="mySelect">
<option value="apple">Apple</option>
<option value="banana">Banana</option>
</select>
<button onclick="getSelectedValue()">Get Value</button>
<script>
function getSelectedValue() {
const select = document.getElementById("mySelect");
alert("Selected value: " + select.value);
}
</script>
Key Notes
valuevstext:selectElement.value→ Returns thevalueattribute of the selected<option>.selectElement.options[selectElement.selectedIndex].text→ Returns the displayed text of the selected<option>.selectedIndex: Returns the index of the selected option (starts at0).- No Selection: If no option is selected,
selectedIndexis-1.
Edge Cases
Handling No Selection:
if (selectElement.selectedIndex === -1) {
console.log("No option selected!");
}
Multi-Select Dropdowns:
For <select multiple>, iterate over all selected options:
const multiSelect = document.getElementById("multiSelect");
const selectedValues = Array.from(multiSelect.selectedOptions)
.map(option => option.value);
console.log(selectedValues); // e.g., ["1", "3"]
Summary
- Use
selectElement.valueto get the selected value. - Use
selectElement.options[selectElement.selectedIndex].textto get the displayed text. - Attach a
changeevent listener to react to user selections.