## com.gargoylesoftware.htmlunit.html
Class HtmlSelect

    java.lang.Object
      com.gargoylesoftware.htmlunit.html.DomNode
          com.gargoylesoftware.htmlunit.html.DomNamespaceNode
              com.gargoylesoftware.htmlunit.html.DomElement
                  com.gargoylesoftware.htmlunit.html.HtmlElement
                      com.gargoylesoftware.htmlunit.html.StyledElement
                          com.gargoylesoftware.htmlunit.html.ClickableElement
                              com.gargoylesoftware.htmlunit.html.HtmlSelect

All Implemented Interfaces:
  DisabledElement, SubmittableElement, java.io.Serializable, java.lang.Cloneable, org.w3c.dom.Element, org.w3c.dom.Node

    public class HtmlSelect

extends ClickableElement
implements DisabledElement, SubmittableElement

Wrapper for the HTML element "select".

Version:
  $Revision: 4854 $
Author:
  Mike Bowler, Mike J. Bresnahan, David K. Taylor, Christian Sell, David D. Kilzer, Marc Guillemot, Daniel Gredler, Ahmed Ashour
See Also:
  Serialized Form

Nested Class Summary

Nested classes/interfaces inherited from class com.gargoylesoftware.htmlunit.html.HtmlElement
`HtmlElement.ChildElementsIterator`

Nested classes/interfaces inherited from class com.gargoylesoftware.htmlunit.html.DomNode
`DomNode.ChildIterator, DomNode.DescendantElementsIterator`

Field Summary
`static java.lang.String` `TAG_NAME` The HTML tag represented by this element.

Fields inherited from class com.gargoylesoftware.htmlunit.html.HtmlElement
`TAB_INDEX_OUT_OF_BOUNDS`

Fields inherited from class com.gargoylesoftware.htmlunit.html.DomElement
`ATTRIBUTE_NOT_DEFINED, ATTRIBUTE_VALUE_EMPTY`

Fields inherited from class com.gargoylesoftware.htmlunit.html.DomNode
`AS_TEXT_BLANK, AS_TEXT_BLOCK_SEPARATOR, AS_TEXT_NEW_LINE, AS_TEXT_TAB, PROPERTY_ELEMENT, READY_STATE_COMPLETE, READY_STATE_INTERACTIVE, READY_STATE_LOADED, READY_STATE_LOADING, READY_STATE_UNINITIALIZED`

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
`DomNode` `appendChild(org.w3c.dom.Node node)`
`void` `appendOption(HtmlOption newOption)` Add a new option at the end.
`java.lang.String` `asText()` Returns a text representation of this element that represents what would be visible to the user if this page was shown in a web browser.
`java.lang.String` `getDefaultValue()` Returns the default value to use when this element gets reset, if applicable.
`java.lang.String` `getDisabledAttribute()` Returns the value of the attribute "disabled".
`java.lang.String` `getMultipleAttribute()` Returns the value of the attribute "multiple".
`java.lang.String` `getNameAttribute()` Returns the value of the attribute "name".
`java.lang.String` `getOnBlurAttribute()` Returns the value of the attribute "onblur".
`java.lang.String` `getOnChangeAttribute()` Returns the value of the attribute "onchange".
`java.lang.String` `getOnFocusAttribute()` Returns the value of the attribute "onfocus".
`HtmlOption` `getOption(int index)` Returns the indexed option.
`HtmlOption` `getOptionByText(java.lang.String text)` Returns the `HtmlOption` object that has the specified text.
`HtmlOption` `getOptionByValue(java.lang.String value)` Returns the `HtmlOption` object that corresponds to the specified value.
`java.util.List<HtmlOption>` `getOptions()` Returns all of the options in this select element.
`int` `getOptionSize()` Returns the number of options.
`java.util.List<HtmlOption>` `getSelectedOptions()` Returns all of the currently selected options.
`java.lang.String` `getSizeAttribute()` Returns the value of the attribute "size".
`org.apache.commons.httpclient.NameValuePair[]` `getSubmitKeyValuePairs()` Returns an array of `NameValuePair`s that are the values that will be sent back to the server whenever this element's containing form is submitted.
`java.lang.String` `getTabIndexAttribute()` Returns the value of the attribute "tabindex".
`boolean` `isDefaultChecked()` Returns the default checked state to use when this element gets reset, if applicable.
`boolean` `isDisabled()` Returns `true` if the disabled attribute is set for this element.
`boolean` `isMultipleSelectEnabled()` Returns `true` if this select is using "multiple select".
`protected void` `onAllChildrenAddedToPage(boolean postponed)` If we were given an invalid `size` attribute, normalize it.
`void` `removeOption(int index)` Remove an option at the given index.
`void` `replaceOption(int index, HtmlOption newOption)` Replace an option at the given index with a new option.
`void` `reset()` Returns the value of this element to what it was at the time the page was loaded.
`void` `setDefaultChecked(boolean defaultChecked)` Sets the default checked state to use when this element gets reset, if applicable.
`void` `setDefaultValue(java.lang.String defaultValue)` Sets the default value to use when this element gets reset, if applicable.
`void` `setOptionSize(int newLength)` Remove options by reducing the "length" property.
`Page` `setSelectedAttribute(HtmlOption selectedOption, boolean isSelected)` Sets the "selected" state of the specified option.
`Page` `setSelectedAttribute(HtmlOption selectedOption, boolean isSelected, boolean invokeOnFocus)` INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK. Sets the "selected" state of the specified option.
`Page` `setSelectedAttribute(java.lang.String optionValue, boolean isSelected)` Sets the "selected" state of the specified option.

Methods inherited from class com.gargoylesoftware.htmlunit.html.StyledElement
`getClassAttribute, getIdAttribute, getStyleAttribute, getTitleAttribute`

Methods inherited from class com.gargoylesoftware.htmlunit.html.HtmlElement

`addHtmlAttributeChangeListener, appendChildIfNoneExists, blur, checkChildHierarchy, click, click, click, dblClick, dblClick, doClickAction, doType, fireEvent, fireEvent, fireHtmlAttributeAdded, fireHtmlAttributeRemoved, fireHtmlAttributeReplaced, focus, getChildElements, getElementById, getElementsByAttribute, getEnclosingElement, getEnclosingForm, getEnclosingFormOrDie, getEventHandler, getHtmlElementsByTagName, getHtmlElementsByTagNames, getId, getLangAttribute, getNodeName, getOnClickAttribute, getOnDblClickAttribute, getOneHtmlElementByAttribute, getOnKeyDownAttribute, getOnKeyPressAttribute, getOnKeyUpAttribute, getOnMouseDownAttribute, getOnMouseMoveAttribute, getOnMouseOutAttribute, getOnMouseOverAttribute, getOnMouseUpAttribute, getTabIndex, getTextDirectionAttribute, getXmlLangAttribute, hasHtmlElementWithId, isAttributeCaseSensitive, isStateUpdateFirst, isSubmittableByEnter, mouseDown, mouseDown, mouseMove, mouseMove, mouseOut, mouseOut, mouseOver, mouseOver, mouseUp, mouseUp, preventDefault, removeAttribute, removeChild, removeEventHandler, removeHtmlAttributeChangeListener, rightClick, rightClick, setAttributeNS, setEventHandler, setEventHandler, setId, toString, type, type, type, type`

Methods inherited from class com.gargoylesoftware.htmlunit.html.DomElement

`cloneNode, getAttribute, getAttributeNode, getAttributeNodeNS, getAttributeNS, getAttributes, getAttributesMap, getElementsByTagName, getElementsByTagNameNS, getNodeType, getSchemaTypeInfo, getTagName, hasAttribute, hasAttributeNS, hasAttributes, isEmptyXmlTagExpanded, namespaces, printOpeningTagContentAsXml, printXml, removeAttributeNode, removeAttributeNS, setAttribute, setAttributeNode, setAttributeNodeNS, setIdAttribute, setIdAttributeNode, setIdAttributeNS`

Methods inherited from class com.gargoylesoftware.htmlunit.html.DomNamespaceNode
`getLocalName, getNamespaceURI, getPrefix, getQualifiedName, setPrefix`

Methods inherited from class com.gargoylesoftware.htmlunit.html.DomNode

`addDomChangeListener, asXml, compareDocumentPosition, fireNodeAdded, fireNodeDeleted, getAllHtmlChildElements, getAncestors, getBaseURI, getByXPath, getCanonicalXPath, getChildNodes, getChildren, getEndColumnNumber, getEndLineNumber, getFeature, getFirstByXPath, getFirstChild, getLastChild, getNextSibling, getNodeValue, getOwnerDocument, getPage, getParentNode, getPreviousSibling, getReadyState, getScriptObject, getStartColumnNumber, getStartLineNumber, getTextContent, getUserData, hasChildNodes, insertBefore, insertBefore, isAncestorOf, isBlock, isDefaultNamespace, isDisplayed, isEqualNode, isSameNode, isSupported, isTrimmedText, lookupNamespaceURI, lookupPrefix, normalize, notifyIncorrectness, onAddedToPage, printChildrenAsXml, remove, removeAllChildren, removeChild, removeDomChangeListener, replace, replaceChild, selectNodes, selectSingleNode, setNextSibling, setNodeValue, setParentNode, setPreviousSibling, setReadyState, setScriptObject, setTextContent, setUserData`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Methods inherited from interface org.w3c.dom.Node

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

Field Detail

### TAG_NAME

    public static final java.lang.String TAG_NAME

  The HTML tag represented by this element.

  See Also:
    Constant Field Values

Method Detail

### onAllChildrenAddedToPage

    protected void onAllChildrenAddedToPage(boolean postponed)

  If we were given an invalid `size` attribute, normalize it. Then set a default selected option if none was specified and the size is 1 or less and this isn't a multiple selection input.

  Overrides:
    `onAllChildrenAddedToPage` in class `DomNode`
  Parameters:
    `postponed` - whether to use `PostponedAction` or no

### getSelectedOptions

    public java.util.List<HtmlOption> getSelectedOptions()

  Returns all of the currently selected options. The following special conditions can occur if the element is in single select mode:

  - if multiple options are erroneously selected, the last one is returned
  - if no options are selected, the first one is returned

  Returns:
    the currently selected options

### getOptions

    public java.util.List<HtmlOption> getOptions()

  Returns all of the options in this select element.

  Returns:
    all of the options in this select element

### getOption

    public HtmlOption getOption(int index)

  Returns the indexed option.

  Parameters:
    `index` - the index
  Returns:
    the option specified by the index

### getOptionSize

    public int getOptionSize()

  Returns the number of options.

  Returns:
    the number of options

### setOptionSize

    public void setOptionSize(int newLength)

  Remove options by reducing the "length" property. This has no effect if the length is set to the same or greater.

  Parameters:
    `newLength` - the new length property value

### removeOption

    public void removeOption(int index)

  Remove an option at the given index.

  Parameters:
    `index` - the index of the option to remove

### replaceOption

    public void replaceOption(int index,
                              HtmlOption newOption)

  Replace an option at the given index with a new option.

  Parameters:
    `index` - the index of the option to remove
    `newOption` - the new option to replace to indexed option

### appendOption

    public void appendOption(HtmlOption newOption)

  Add a new option at the end.

  Parameters:
    `newOption` - the new option to add

### appendChild

    public DomNode appendChild(org.w3c.dom.Node node)

  Specified by:
    `appendChild` in interface `org.w3c.dom.Node`
  Overrides:
    `appendChild` in class `DomNode`

### setSelectedAttribute

    public Page setSelectedAttribute(java.lang.String optionValue,
                                     boolean isSelected)

  Sets the "selected" state of the specified option. If this "select" element is single-select, then calling this method will deselect all other options. Only options that are actually in the document may be selected.

  Parameters:
    `isSelected` - true if the option is to become selected
    `optionValue` - the value of the option that is to change
  Returns:
    the page that occupies this window after this change is made (may or may not be the same as the original page)

### setSelectedAttribute

    public Page setSelectedAttribute(HtmlOption selectedOption,
                                     boolean isSelected)

  Sets the "selected" state of the specified option. If this "select" element is single-select, then calling this method will deselect all other options. Only options that are actually in the document may be selected.

  Parameters:
    `isSelected` - true if the option is to become selected
    `selectedOption` - the value of the option that is to change
  Returns:
    the page that occupies this window after this change is made (may or may not be the same as the original page)

### setSelectedAttribute

    public Page setSelectedAttribute(HtmlOption selectedOption,
                                     boolean isSelected,
                                     boolean invokeOnFocus)

  INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
  Sets the "selected" state of the specified option. If this "select" element is single-select, then calling this method will deselect all other options. Only options that are actually in the document may be selected.

  Parameters:
    `isSelected` - true if the option is to become selected
    `selectedOption` - the value of the option that is to change
    `invokeOnFocus` - whether to set focus or no.
  Returns:
    the page that occupies this window after this change is made (may or may not be the same as the original page)

### getSubmitKeyValuePairs

    public org.apache.commons.httpclient.NameValuePair[] getSubmitKeyValuePairs()

  Returns an array of `NameValuePair`s that are the values that will be sent back to the server whenever this element's containing form is submitted.

  THIS METHOD IS INTENDED FOR THE USE OF THE FRAMEWORK ONLY AND SHOULD NOT BE USED BY CONSUMERS OF HTMLUNIT. USE AT YOUR OWN RISK.

  Specified by:
    `getSubmitKeyValuePairs` in interface `SubmittableElement`
  Returns:
    the values that will be sent back to the server whenever this element's containing form is submitted

### reset

    public void reset()

  Returns the value of this element to what it was at the time the page was loaded.

  Specified by:
    `reset` in interface `SubmittableElement`

### setDefaultValue

    public void setDefaultValue(java.lang.String defaultValue)

  Sets the default value to use when this element gets reset, if applicable.

  Specified by:
    `setDefaultValue` in interface `SubmittableElement`
  Parameters:
    `defaultValue` - the default value to use when this element gets reset, if applicable
  See Also:
    `SubmittableElement.setDefaultValue(String)`

### getDefaultValue

    public java.lang.String getDefaultValue()

  Returns the default value to use when this element gets reset, if applicable.

  Specified by:
    `getDefaultValue` in interface `SubmittableElement`
  Returns:
    the default value to use when this element gets reset, if applicable
  See Also:
    `SubmittableElement.setDefaultValue(String)`

### setDefaultChecked

    public void setDefaultChecked(boolean defaultChecked)

  Sets the default checked state to use when this element gets reset, if applicable. This implementation is empty; only checkboxes and radio buttons really care what the default checked value is.

  Specified by:
    `setDefaultChecked` in interface `SubmittableElement`
  Parameters:
    `defaultChecked` - the default checked state to use when this element gets reset, if applicable
  See Also:
    `SubmittableElement.setDefaultChecked(boolean)`, `HtmlRadioButtonInput.setDefaultChecked(boolean)`, `HtmlCheckBoxInput.setDefaultChecked(boolean)`

### isDefaultChecked

    public boolean isDefaultChecked()

  Returns the default checked state to use when this element gets reset, if applicable. This implementation returns `false`; only checkboxes and radio buttons really care what the default checked value is.

  Specified by:
    `isDefaultChecked` in interface `SubmittableElement`
  Returns:
    the default checked state to use when this element gets reset, if applicable
  See Also:
    `SubmittableElement.isDefaultChecked()`, `HtmlRadioButtonInput.isDefaultChecked()`, `HtmlCheckBoxInput.isDefaultChecked()`

### isMultipleSelectEnabled

    public boolean isMultipleSelectEnabled()

  Returns `true` if this select is using "multiple select".

  Returns:
    `true` if this select is using "multiple select"

### getOptionByValue

    public HtmlOption getOptionByValue(java.lang.String value)
                                throws ElementNotFoundException

  Returns the `HtmlOption` object that corresponds to the specified value.

  Parameters:
    `value` - the value to search by
  Returns:
    the `HtmlOption` object that corresponds to the specified value
  Throws:
    `ElementNotFoundException` - If a particular element could not be found in the DOM model

### getOptionByText

    public HtmlOption getOptionByText(java.lang.String text)
                               throws ElementNotFoundException

  Returns the `HtmlOption` object that has the specified text.

  Parameters:
    `text` - the text to search by
  Returns:
    the `HtmlOption` object that has the specified text
  Throws:
    `ElementNotFoundException` - If a particular element could not be found in the DOM model

### asText

    public java.lang.String asText()

  Returns a text representation of this element that represents what would be visible to the user if this page was shown in a web browser. If the user can only select one option at a time, this method returns the selected option. If the user can select multiple options, this method returns all options.

  Overrides:
    `asText` in class `DomNode`
  Returns:
    the element as text

### getNameAttribute

    public final java.lang.String getNameAttribute()

  Returns the value of the attribute "name". Refer to the HTML 4.01 documentation for details on the use of this attribute.

  Returns:
    the value of the attribute "name" or an empty string if that attribute isn't defined

### getSizeAttribute

    public final java.lang.String getSizeAttribute()

  Returns the value of the attribute "size". Refer to the HTML 4.01 documentation for details on the use of this attribute.

  Returns:
    the value of the attribute "size" or an empty string if that attribute isn't defined

### getMultipleAttribute

    public final java.lang.String getMultipleAttribute()

  Returns the value of the attribute "multiple". Refer to the HTML 4.01 documentation for details on the use of this attribute.

  Returns:
    the value of the attribute "multiple" or an empty string if that attribute isn't defined

### getDisabledAttribute

    public final java.lang.String getDisabledAttribute()

  Returns the value of the attribute "disabled". Refer to the HTML 4.01 documentation for details on the use of this attribute.

  Specified by:
    `getDisabledAttribute` in interface `DisabledElement`
  Returns:
    the value of the attribute "disabled" or an empty string if that attribute isn't defined

### isDisabled

    public final boolean isDisabled()

  Returns `true` if the disabled attribute is set for this element.

  Specified by:
    `isDisabled` in interface `DisabledElement`
  Returns:
    `true` if the disabled attribute is set for this element

### getTabIndexAttribute

    public final java.lang.String getTabIndexAttribute()

  Returns the value of the attribute "tabindex". Refer to the HTML 4.01 documentation for details on the use of this attribute.

  Returns:
    the value of the attribute "tabindex" or an empty string if that attribute isn't defined

### getOnFocusAttribute

    public final java.lang.String getOnFocusAttribute()

  Returns the value of the attribute "onfocus". Refer to the HTML 4.01 documentation for details on the use of this attribute.

  Returns:
    the value of the attribute "onfocus" or an empty string if that attribute isn't defined

### getOnBlurAttribute

    public final java.lang.String getOnBlurAttribute()

  Returns the value of the attribute "onblur". Refer to the HTML 4.01 documentation for details on the use of this attribute.

  Returns:
    the value of the attribute "onblur" or an empty string if that attribute isn't defined

### getOnChangeAttribute

    public final java.lang.String getOnChangeAttribute()

  Returns the value of the attribute "onchange". Refer to the HTML 4.01 documentation for details on the use of this attribute.

  Returns:
    the value of the attribute "onchange" or an empty string if that attribute isn't defined

Copyright © 2002-2011 Gargoyle Software Inc.. All Rights Reserved.