HTMLSelectElement (Common DOM API )
Keywords: org.w3c.dom.html.HTMLSelectElement interface
Date: 2026-03-16

compact2, compact3
org.w3c.dom.html

## Interface HTMLSelectElement

- All Superinterfaces:
    Element, HTMLElement, Node

      public interface HTMLSelectElement
      extends HTMLElement

  The select element allows the selection of an option. The contained options can be directly accessed through the select element as a collection. See the SELECT element definition in HTML 4.0.

  See also the Document Object Model (DOM) Level 2 Specification.

- - ### Field Summary

    - ### Fields inherited from interface org.w3c.dom.Node

      `ATTRIBUTE_NODE, CDATA_SECTION_NODE, COMMENT_NODE, DOCUMENT_FRAGMENT_NODE, DOCUMENT_NODE, DOCUMENT_POSITION_CONTAINED_BY, DOCUMENT_POSITION_CONTAINS, DOCUMENT_POSITION_DISCONNECTED, DOCUMENT_POSITION_FOLLOWING, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC, DOCUMENT_POSITION_PRECEDING, DOCUMENT_TYPE_NODE, ELEMENT_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE, NOTATION_NODE, PROCESSING_INSTRUCTION_NODE, TEXT_NODE`

  - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `add(HTMLElement element, HTMLElement before)` Add a new element to the collection of `OPTION` elements for this `SELECT` .
    `void` | `blur()` Removes keyboard focus from this element.
    `void` | `focus()` Gives keyboard focus to this element.
    `boolean` | `getDisabled()` The control is unavailable in this context.
    `HTMLFormElement` | `getForm()` Returns the `FORM` element containing this control.
    `int` | `getLength()` The number of options in this `SELECT` .
    `boolean` | `getMultiple()` If true, multiple `OPTION` elements may be selected in this `SELECT` .
    `String` | `getName()` Form control or object name when submitted with a form.
    `HTMLCollection` | `getOptions()` The collection of `OPTION` elements contained by this element.
    `int` | `getSelectedIndex()` The ordinal index of the selected option, starting from 0.
    `int` | `getSize()` Number of visible rows.
    `int` | `getTabIndex()` Index that represents the element's position in the tabbing order.
    `String` | `getType()` The type of this form control.
    `String` | `getValue()` The current form control value.
    `void` | `remove(int index)` Remove an element from the collection of `OPTION` elements for this `SELECT` .
    `void` | `setDisabled(boolean disabled)`
    `void` | `setMultiple(boolean multiple)`
    `void` | `setName(String name)`
    `void` | `setSelectedIndex(int selectedIndex)`
    `void` | `setSize(int size)`
    `void` | `setTabIndex(int tabIndex)`
    `void` | `setValue(String value)`

    - ### Methods inherited from interface org.w3c.dom.html.HTMLElement

      `getClassName, getDir, getId, getLang, getTitle, setClassName, setDir, setId, setLang, setTitle`

    - ### Methods inherited from interface org.w3c.dom.Element

      `getAttribute, getAttributeNode, getAttributeNodeNS, getAttributeNS, getElementsByTagName, getElementsByTagNameNS, getSchemaTypeInfo, getTagName, hasAttribute, hasAttributeNS, removeAttribute, removeAttributeNode, removeAttributeNS, setAttribute, setAttributeNode, setAttributeNodeNS, setAttributeNS, setIdAttribute, setIdAttributeNode, setIdAttributeNS`

    - ### Methods inherited from interface org.w3c.dom.Node

      `appendChild, cloneNode, compareDocumentPosition, getAttributes, getBaseURI, getChildNodes, getFeature, getFirstChild, getLastChild, getLocalName, getNamespaceURI, getNextSibling, getNodeName, getNodeType, getNodeValue, getOwnerDocument, getParentNode, getPrefix, getPreviousSibling, getTextContent, getUserData, hasAttributes, hasChildNodes, insertBefore, isDefaultNamespace, isEqualNode, isSameNode, isSupported, lookupNamespaceURI, lookupPrefix, normalize, removeChild, replaceChild, setNodeValue, setPrefix, setTextContent, setUserData`

- - ### Method Detail

    - #### getType

          String getType()

      The type of this form control. This is the string "select-multiple" when the multiple attribute is `true` and the string "select-one" when `false` .

    - #### getSelectedIndex

          int getSelectedIndex()

      The ordinal index of the selected option, starting from 0. The value -1 is returned if no element is selected. If multiple options are selected, the index of the first selected option is returned.

    - #### setSelectedIndex

          void setSelectedIndex(int selectedIndex)

    - #### getValue

          String getValue()

      The current form control value.

    - #### setValue

          void setValue(String value)

    - #### getLength

          int getLength()

      The number of options in this `SELECT` .

    - #### getForm

          HTMLFormElement getForm()

      Returns the `FORM` element containing this control. Returns `null` if this control is not within the context of a form.

    - #### getOptions

          HTMLCollection getOptions()

      The collection of `OPTION` elements contained by this element.

    - #### getDisabled

          boolean getDisabled()

      The control is unavailable in this context. See the disabled attribute definition in HTML 4.0.

    - #### setDisabled

          void setDisabled(boolean disabled)

    - #### getMultiple

          boolean getMultiple()

      If true, multiple `OPTION` elements may be selected in this `SELECT` . See the multiple attribute definition in HTML 4.0.

    - #### setMultiple

          void setMultiple(boolean multiple)

    - #### getName

          String getName()

      Form control or object name when submitted with a form. See the name attribute definition in HTML 4.0.

    - #### setName

          void setName(String name)

    - #### getSize

          int getSize()

      Number of visible rows. See the size attribute definition in HTML 4.0.

    - #### setSize

          void setSize(int size)

    - #### getTabIndex

          int getTabIndex()

      Index that represents the element's position in the tabbing order. See the tabindex attribute definition in HTML 4.0.

    - #### setTabIndex

          void setTabIndex(int tabIndex)

    - #### add

          void add(HTMLElement element,
                   HTMLElement before)
            throws DOMException

      Add a new element to the collection of `OPTION` elements for this `SELECT` . This method is the equivalent of the `appendChild` method of the `Node` interface if the `before` parameter is `null` . It is equivalent to the `insertBefore` method on the parent of `before` in all other cases.
      Parameters:
        `element` - The element to add.
        `before` - The element to insert before, or `null` for the tail of the list.
      Throws:
        `DOMException` - NOT_FOUND_ERR: Raised if `before` is not a descendant of the `SELECT` element.

    - #### remove

          void remove(int index)

      Remove an element from the collection of `OPTION` elements for this `SELECT` . Does nothing if no element has the given index.
      Parameters:
        `index` - The index of the item to remove, starting from 0.

    - #### blur

          void blur()

      Removes keyboard focus from this element.

    - #### focus

          void focus()

      Gives keyboard focus to this element.

Submit a bug or feature
Java is a trademark or registered trademark of Oracle and/or its affiliates in the US and other countries.
Copyright © 2005, 2026, Oracle and/or its affiliates. 500 Oracle Parkway
Redwood Shores, CA 94065 USA. All rights reserved.