Package org.htmlunit.html
Class HtmlSelect
java.lang.Object
org.htmlunit.html.DomNode
org.htmlunit.html.DomNamespaceNode
org.htmlunit.html.DomElement
org.htmlunit.html.HtmlElement
org.htmlunit.html.HtmlSelect
- All Implemented Interfaces:
Serializable
,Cloneable
,DisabledElement
,FormFieldWithNameHistory
,LabelableElement
,SubmittableElement
,ValidatableElement
,Element
,Node
public class HtmlSelect
extends HtmlElement
implements DisabledElement, SubmittableElement, LabelableElement, FormFieldWithNameHistory, ValidatableElement
Wrapper for the HTML element "select".
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class org.htmlunit.html.HtmlElement
HtmlElement.DisplayStyle
Nested classes/interfaces inherited from class org.htmlunit.html.DomElement
DomElement.ChildElementsIterator
Nested classes/interfaces inherited from class org.htmlunit.html.DomNode
DomNode.ChildIterator, DomNode.DescendantDomElementsIterator, DomNode.DescendantDomNodesIterator, DomNode.DescendantElementsIterator<T extends DomNode>, DomNode.DescendantHtmlElementsIterator
-
Field Summary
FieldsFields inherited from class org.htmlunit.html.HtmlElement
ATTRIBUTE_CHECKED, ATTRIBUTE_HIDDEN, ATTRIBUTE_REQUIRED, TAB_INDEX_OUT_OF_BOUNDS
Fields inherited from class org.htmlunit.html.DomElement
ATTRIBUTE_NOT_DEFINED, ATTRIBUTE_VALUE_EMPTY, ID_ATTRIBUTE, NAME_ATTRIBUTE, SRC_ATTRIBUTE, TYPE_ATTRIBUTE, VALUE_ATTRIBUTE
Fields inherited from class org.htmlunit.html.DomNode
PROPERTY_ELEMENT, READY_STATE_COMPLETE, READY_STATE_INTERACTIVE, READY_STATE_LOADED, READY_STATE_LOADING, READY_STATE_UNINITIALIZED
Fields inherited from interface org.htmlunit.html.DisabledElement
ATTRIBUTE_DISABLED
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
Modifier and TypeMethodDescriptionappendChild
(Node node) void
appendOption
(HtmlOption newOption) Add a new option at the end.void
INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Resets the selectedIndex if needed.INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Returns the default display style.Returns the default value to use when this element gets reset, if applicable.final String
Returns the value of the attributedisabled
.final String
Returns the value of the attributemultiple
.final String
Returns the value of the attributename
.Get all the names this field got after the original one.final String
Returns the value of the attributeonblur
.final String
Returns the value of the attributeonchange
.final String
Returns the value of the attributeonfocus
.getOption
(int index) Returns the indexed option.getOptionByText
(String text) Returns theHtmlOption
object that has the specified text.getOptionByValue
(String value) Returns theHtmlOption
object that corresponds to the specified value.Returns all of the options in this select element.int
Returns the number of options.Gets the first value of thename
attribute of this field before any change.int
Returns the value of theselectedIndex
property.Returns all of the currently selected options.final int
getSize()
final String
Returns the value of the attributesize
.Returns an array ofNameValuePair
s that are the values that will be sent back to the server whenever this element's containing form is submitted.final String
Returns the value of the attributetabindex
.boolean
handles
(org.htmlunit.javascript.host.event.Event event) Indicates if the provided event can be applied to this node.int
indexOf
(HtmlOption option) INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.boolean
boolean
Returns the default checked state to use when this element gets reset, if applicable.final boolean
Returnstrue
if the disabled attribute is set for this element.boolean
Returnstrue
if this select is using "multiple select".boolean
Returnstrue
if this element is read only.protected boolean
Returns whether this element supports therequired
constraint.boolean
isValid()
Returns whether this element satisfies all form validation constraints set.boolean
boolean
void
onAllChildrenAddedToPage
(boolean postponed) If we were given an invalidsize
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.protected void
setAttributeNS
(String namespaceURI, String qualifiedName, String attributeValue, boolean notifyAttributeChangeListeners, boolean notifyMutationObservers) Sets the value of the attribute specified by namespace and qualified name.void
setCustomValidity
(String message) Sets the custom validity message for the element to the specified message.void
setDefaultChecked
(boolean defaultChecked) Sets the default checked state to use when this element gets reset, if applicable.void
setDefaultValue
(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.<P extends Page>
PsetSelectedAttribute
(String optionValue, boolean isSelected) Sets the "selected" state of the specified option.<P extends Page>
PsetSelectedAttribute
(String optionValue, 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.<P extends Page>
PsetSelectedAttribute
(HtmlOption selectedOption, boolean isSelected) Sets the "selected" state of the specified option.<P extends Page>
PsetSelectedAttribute
(HtmlOption selectedOption, boolean isSelected, boolean invokeOnFocus, boolean shiftKey, boolean ctrlKey, boolean isClick) INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Sets the "selected" state of the specified option.void
setSelectedIndex
(int index) Sets the value of theselectedIndex
property.boolean
Methods inherited from class org.htmlunit.html.HtmlElement
acceptChar, addHtmlAttributeChangeListener, appendChildIfNoneExists, checkChildHierarchy, cloneNode, detach, doType, doType, fireHtmlAttributeAdded, fireHtmlAttributeRemoved, fireHtmlAttributeReplaced, getCanonicalXPath, getElementsByAttribute, getEnclosingElement, getEnclosingForm, getEnclosingFormOrDie, getLangAttribute, getNodeName, getOnClickAttribute, getOnDblClickAttribute, getOneHtmlElementByAttribute, getOnKeyDownAttribute, getOnKeyPressAttribute, getOnKeyUpAttribute, getOnMouseDownAttribute, getOnMouseMoveAttribute, getOnMouseOutAttribute, getOnMouseOverAttribute, getOnMouseUpAttribute, getSrcAttributeNormalized, getTabIndex, getTextDirectionAttribute, getXmlLangAttribute, hasEventHandlers, isAltPressed, isAttributeCaseSensitive, isCtrlPressed, isDisplayed, isHidden, isOptional, isRequired, isShiftPressed, isSubmittableByEnter, notifyAttributeChangeListeners, removeAttribute, removeChild, removeHtmlAttributeChangeListener, setAttributeNode, setHidden, setHidden, setOwningForm, setRequired, type, type, type, type, typeDone
Methods inherited from class org.htmlunit.html.DomElement
blur, click, click, click, click, click, dblClick, dblClick, doClickFireChangeEvent, doClickFireClickEvent, doClickStateUpdate, fireEvent, fireEvent, focus, getAttribute, getAttributeDirect, getAttributeNode, getAttributeNodeNS, getAttributeNS, getAttributes, getAttributesMap, getChildElementCount, getChildElements, getElementsByTagName, getElementsByTagNameNS, getEventTargetElement, getFirstElementChild, getId, getLastElementChild, getNodeType, getSchemaTypeInfo, getStaticElementsByTagName, getStyleElement, getStyleElementCaseInSensitive, getStyleMap, getTagName, hasAttribute, hasAttributeNS, hasAttributes, isDisabledElementAndDisabled, isEmptyXmlTagExpanded, isMouseOver, isStateUpdateFirst, matches, mouseDown, mouseDown, mouseMove, mouseMove, mouseOut, mouseOut, mouseOver, mouseOver, mouseUp, mouseUp, preventDefault, printOpeningTagContentAsXml, printXml, propagateClickStateUpdateToParent, removeAttributeNode, removeAttributeNS, removeFocus, removeStyleAttribute, replaceStyleAttribute, rightClick, rightClick, setAttribute, setAttributeNodeNS, setAttributeNS, setDefaults, setId, setIdAttribute, setIdAttributeNode, setIdAttributeNS, setInnerHtml, setNodeValue, toString, writeStyleToElement
Methods inherited from class org.htmlunit.html.DomNamespaceNode
getLocalName, getLowercaseName, getNamespaceURI, getPrefix, getQualifiedName, processImportNode, setPrefix
Methods inherited from class org.htmlunit.html.DomNode
addCharacterDataChangeListener, addDomChangeListener, asNormalizedText, asXml, basicRemove, closest, compareDocumentPosition, fireCharacterDataChanged, fireNodeAdded, fireNodeDeleted, getAncestors, getBaseURI, getByXPath, getByXPath, getChildNodes, getChildren, getDescendants, getDomElementDescendants, getEndColumnNumber, getEndLineNumber, getFeature, getFirstByXPath, getFirstByXPath, getFirstChild, getHtmlElementDescendants, getHtmlPageOrNull, getIndex, getLastChild, getNextElementSibling, getNextSibling, getNodeValue, getOwnerDocument, getPage, getParentNode, getPreviousElementSibling, getPreviousSibling, getReadyState, getScriptableObject, getSelectorList, getStartColumnNumber, getStartLineNumber, getTextContent, getUserData, getVisibleText, hasChildNodes, hasFeature, insertBefore, insertBefore, isAncestorOf, isAncestorOfAny, isAttachedToPage, isDefaultNamespace, isEqualNode, isSameNode, isSupported, lookupNamespaceURI, lookupPrefix, mayBeDisplayed, normalize, notifyIncorrectness, onAddedToDocumentFragment, onAddedToPage, parseHtmlSnippet, printChildrenAsXml, querySelector, querySelectorAll, quietlyRemoveAndMoveChildrenTo, remove, removeAllChildren, removeCharacterDataChangeListener, removeChild, removeDomChangeListener, replace, replaceChild, setEndLocation, setParentNode, setReadyState, setScriptableObject, setStartLocation, 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, setPrefix, setTextContent, setUserData
Methods inherited from interface org.htmlunit.html.ValidatableElement
hasBadInputValidityState, hasPatternMismatchValidityState, hasRangeOverflowValidityState, hasRangeUnderflowValidityState, hasTypeMismatchValidityState, isStepMismatchValidityState, isTooLongValidityState, isTooShortValidityState
-
Field Details
-
TAG_NAME
The HTML tag represented by this element.- See Also:
-
-
Method Details
-
onAllChildrenAddedToPage
public void onAllChildrenAddedToPage(boolean postponed) If we were given an invalidsize
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 classDomNode
- Parameters:
postponed
- whether to usePostponedAction
or no
-
handles
public boolean handles(org.htmlunit.javascript.host.event.Event event) Indicates if the provided event can be applied to this node. Overwrite this.- Overrides:
handles
in classHtmlElement
- Parameters:
event
- the event- Returns:
false
if the event can't be applied
-
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
Returns all of the options in this select element.- Returns:
- all of the options in this select element
-
getOption
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
Replace an option at the given index with a new option.- Parameters:
index
- the index of the option to removenewOption
- the new option to replace to indexed option
-
appendOption
Add a new option at the end.- Parameters:
newOption
- the new option to add
-
appendChild
- Specified by:
appendChild
in interfaceNode
- Overrides:
appendChild
in classDomNode
-
setSelectedAttribute
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.
- Type Parameters:
P
- the page type- Parameters:
optionValue
- the value of the option that is to changeisSelected
- true if the option is to become selected- Returns:
- the page contained in the current window as returned
by
WebClient.getCurrentWindow()
-
setSelectedAttribute
public <P extends Page> P setSelectedAttribute(String optionValue, 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.
- Type Parameters:
P
- the page type- Parameters:
optionValue
- the value of the option that is to changeisSelected
- true if the option is to become selectedinvokeOnFocus
- whether to set focus or not.- Returns:
- the page contained in the current window as returned
by
WebClient.getCurrentWindow()
-
setSelectedAttribute
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.
- Type Parameters:
P
- the page type- Parameters:
selectedOption
- the value of the option that is to changeisSelected
- true if the option is to become selected- Returns:
- the page contained in the current window as returned
by
WebClient.getCurrentWindow()
-
setSelectedAttribute
public <P extends Page> P setSelectedAttribute(HtmlOption selectedOption, boolean isSelected, boolean invokeOnFocus, boolean shiftKey, boolean ctrlKey, boolean isClick) 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.
- Type Parameters:
P
- the page type- Parameters:
selectedOption
- the value of the option that is to changeisSelected
- true if the option is to become selectedinvokeOnFocus
- whether to set focus or not.shiftKey
-true
if SHIFT is pressedctrlKey
-true
if CTRL is pressedisClick
- is mouse clicked- Returns:
- the page contained in the current window as returned
by
WebClient.getCurrentWindow()
-
getSubmitNameValuePairs
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:
getSubmitNameValuePairs
in interfaceSubmittableElement
- 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 interfaceSubmittableElement
-
setDefaultValue
Sets the default value to use when this element gets reset, if applicable.- Specified by:
setDefaultValue
in interfaceSubmittableElement
- Parameters:
defaultValue
- the default value to use when this element gets reset, if applicable- See Also:
-
getDefaultValue
Returns the default value to use when this element gets reset, if applicable.- Specified by:
getDefaultValue
in interfaceSubmittableElement
- Returns:
- the default value to use when this element gets reset, if applicable
- See Also:
-
setDefaultChecked
public void setDefaultChecked(boolean defaultChecked) Sets the default checked state to use when this element gets reset, if applicable. The default implementation is empty; only checkboxes and radio buttons really care what the default checked value is. This implementation is empty; only checkboxes and radio buttons really care what the default checked value is.- Specified by:
setDefaultChecked
in interfaceSubmittableElement
- Parameters:
defaultChecked
- the default checked state to use when this element gets reset, if applicable- See Also:
-
isDefaultChecked
public boolean isDefaultChecked()Returns the default checked state to use when this element gets reset, if applicable. This implementation returnsfalse
; only checkboxes and radio buttons really care what the default checked value is.- Specified by:
isDefaultChecked
in interfaceSubmittableElement
- Returns:
- the default checked state to use when this element gets reset, if applicable
- See Also:
-
isMultipleSelectEnabled
public boolean isMultipleSelectEnabled()Returnstrue
if this select is using "multiple select".- Returns:
true
if this select is using "multiple select"
-
getOptionByValue
Returns theHtmlOption
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
Returns theHtmlOption
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
-
getNameAttribute
Returns the value of the attributename
. 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
Returns the value of the attributesize
. 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
-
getSize
public final int getSize()- Returns:
- the size or 1 if not defined or not convertable to int
-
getMultipleAttribute
Returns the value of the attributemultiple
. 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
Returns the value of the attributedisabled
. Refer to the HTML 4.01 documentation for details on the use of this attribute.- Specified by:
getDisabledAttribute
in interfaceDisabledElement
- Returns:
- the value of the attribute
disabled
or an empty string if that attribute isn't defined
-
isDisabled
public final boolean isDisabled()Returnstrue
if the disabled attribute is set for this element.- Specified by:
isDisabled
in interfaceDisabledElement
- Returns:
true
if the disabled attribute is set for this element
-
isReadOnly
public boolean isReadOnly()Returnstrue
if this element is read only.- Returns:
true
if this element is read only
-
getTabIndexAttribute
Returns the value of the attributetabindex
. 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
Returns the value of the attributeonfocus
. 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
Returns the value of the attributeonblur
. 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
Returns the value of the attributeonchange
. 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
-
setAttributeNS
protected void setAttributeNS(String namespaceURI, String qualifiedName, String attributeValue, boolean notifyAttributeChangeListeners, boolean notifyMutationObservers) Sets the value of the attribute specified by namespace and qualified name.- Overrides:
setAttributeNS
in classHtmlElement
- Parameters:
namespaceURI
- the URI that identifies an XML namespacequalifiedName
- the qualified name (prefix:local) of the attributeattributeValue
- the value of the attributenotifyAttributeChangeListeners
- to notify the associatedHtmlAttributeChangeListener
snotifyMutationObservers
- to notifyMutationObserver
s or not
-
getOriginalName
Gets the first value of thename
attribute of this field before any change.- Specified by:
getOriginalName
in interfaceFormFieldWithNameHistory
- Returns:
- the original name (which is the same as the current one when no change has been made)
-
getNewNames
Get all the names this field got after the original one.- Specified by:
getNewNames
in interfaceFormFieldWithNameHistory
- Returns:
- an empty collection if the name attribute has never been changed.
-
getDefaultStyleDisplay
INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Returns the default display style.- Overrides:
getDefaultStyleDisplay
in classHtmlElement
- Returns:
- the default display style
-
getSelectedIndex
public int getSelectedIndex()Returns the value of theselectedIndex
property.- Returns:
- the selectedIndex property
-
setSelectedIndex
public void setSelectedIndex(int index) Sets the value of theselectedIndex
property.- Parameters:
index
- the new value
-
ensureSelectedIndex
public void ensureSelectedIndex()INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
Resets the selectedIndex if needed. -
indexOf
INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.- Parameters:
option
- the option to search for- Returns:
- the index of the provided option or zero if not found
-
isRequiredSupported
protected boolean isRequiredSupported()Returns whether this element supports therequired
constraint.- Overrides:
isRequiredSupported
in classHtmlElement
- Returns:
- whether this element supports the
required
constraint
-
willValidate
public boolean willValidate()- Specified by:
willValidate
in interfaceValidatableElement
- Returns:
- whether the element is a candidate for constraint validation
-
setCustomValidity
Sets the custom validity message for the element to the specified message.- Specified by:
setCustomValidity
in interfaceValidatableElement
- Parameters:
message
- the new message
-
isValid
public boolean isValid()Returns whether this element satisfies all form validation constraints set.- Overrides:
isValid
in classHtmlElement
- Returns:
- whether this element satisfies all form validation constraints set
-
isCustomErrorValidityState
public boolean isCustomErrorValidityState()- Specified by:
isCustomErrorValidityState
in interfaceValidatableElement
- Returns:
- a boolean value indicating whether the element's custom validity message has been set to a non-empty string by calling the element's setCustomValidity() method.
-
isValidValidityState
public boolean isValidValidityState()- Specified by:
isValidValidityState
in interfaceValidatableElement
- Returns:
- true if the element meets all its validation constraints, and is therefore considered to be valid, or false if it fails any constraint. If true, the element matches the :valid CSS pseudo-class; the :invalid CSS pseudo-class otherwise.
-
isValueMissingValidityState
public boolean isValueMissingValidityState()- Specified by:
isValueMissingValidityState
in interfaceValidatableElement
- Returns:
- true if the element has a required attribute, but no value, or false otherwise. If true, the element matches the :invalid CSS pseudo-class.
-