files/en-us/web/api/htmlselectelement/index.md
{{APIRef("HTML DOM")}}
The HTMLSelectElement interface represents a {{HTMLElement("select")}} HTML Element. These elements also share all of the properties and methods of other HTML elements via the {{domxref("HTMLElement")}} interface.
{{InheritanceDiagram}}
This interface inherits the properties of {{domxref("HTMLElement")}}, and of {{domxref("Element")}} and {{domxref("Node")}}.
autocomplete, which indicates whether the value of the control can be automatically completed by the browser.disabled HTML attribute, which indicates whether the control is disabled. If it is disabled, it does not accept clicks.null.unsigned long The number of {{HTMLElement("option")}} elements in this select element.multiple HTML attribute, which indicates whether multiple items can be selected.name HTML attribute, containing the name of this control used by servers and DOM search functions.required HTML attribute, which indicates whether the user is required to select a value before submitting the form.long reflecting the index of the first selected {{HTMLElement("option")}} element. The value -1 indicates no element is selected.long reflecting the size HTML attribute, which contains the number of visible items in the control. The default is 1, unless multiple is true, in which case it is 4.multiple is true, it returns "select-multiple"; otherwise, it returns "select-one".willValidate is false), or it satisfies its constraints.value property of the first selected option element if there is one, otherwise the empty string.false if any conditions bar it from constraint validation.This interface inherits the methods of {{domxref("HTMLElement")}}, and of {{domxref("Element")}} and {{domxref("Node")}}.
option elements for this select element.false).id or the name attribute of an option node. You can also access an item by specifying the name in square brackets or parentheses, without calling this method explicitly.select element.false; if there are no problems, it returns true.This interface inherits the events of {{domxref("HTMLElement")}}, and of {{domxref("Element")}} and {{domxref("Node")}}.
Listen to these events using {{domxref("EventTarget/addEventListener", "addEventListener()")}} or by assigning an event listener to the oneventname property of this interface:
value of an {{HTMLElement("input")}}, {{HTMLElement("select")}}, or {{HTMLElement("textarea")}} element has been changed./* assuming we have the following HTML
<select id='s'>
<option>First</option>
<option selected>Second</option>
<option>Third</option>
</select>
*/
const select = document.getElementById("s");
// return the index of the selected option
console.log(select.selectedIndex); // 1
// return the value of the selected option
console.log(select.options[select.selectedIndex].value); // Second
A better way to track changes to the user's selection is to watch for the {{domxref("HTMLElement/change_event", "change")}} event to occur on the <select>. This will tell you when the value changes, and you can then update anything you need to. See the example provided in the documentation for the change event for details.
{{Specifications}}
{{Compat}}