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.DisplayStyleNested classes/interfaces inherited from class org.htmlunit.html.DomElement
DomElement.ChildElementsIteratorNested 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_BOUNDSFields inherited from class org.htmlunit.html.DomElement
ATTRIBUTE_NOT_DEFINED, ATTRIBUTE_VALUE_EMPTY, ID_ATTRIBUTE, NAME_ATTRIBUTE, SRC_ATTRIBUTE, TYPE_ATTRIBUTE, VALUE_ATTRIBUTEFields inherited from class org.htmlunit.html.DomNode
PROPERTY_ELEMENT, READY_STATE_COMPLETE, READY_STATE_INTERACTIVE, READY_STATE_LOADED, READY_STATE_LOADING, READY_STATE_UNINITIALIZEDFields inherited from interface org.htmlunit.html.DisabledElement
ATTRIBUTE_DISABLEDFields 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) voidappendOption(HtmlOption newOption) Add a new option at the end.voidINTERNAL 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 StringReturns the value of the attributedisabled.final StringReturns the value of the attributemultiple.final StringReturns the value of the attributename.Get all the names this field got after the original one.final StringReturns the value of the attributeonblur.final StringReturns the value of the attributeonchange.final StringReturns the value of the attributeonfocus.getOption(int index) Returns the indexed option.getOptionByText(String text) Returns theHtmlOptionobject that has the specified text.getOptionByValue(String value) Returns theHtmlOptionobject that corresponds to the specified value.Returns all of the options in this select element.intReturns the number of options.Gets the first value of thenameattribute of this field before any change.intReturns the value of theselectedIndexproperty.Returns all of the currently selected options.final intgetSize()final StringReturns the value of the attributesize.Returns an array ofNameValuePairs that are the values that will be sent back to the server whenever this element's containing form is submitted.final StringReturns the value of the attributetabindex.booleanhandles(org.htmlunit.javascript.host.event.Event event) Indicates if the provided event can be applied to this node.intindexOf(HtmlOption option) INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.booleanbooleanReturns the default checked state to use when this element gets reset, if applicable.final booleanReturnstrueif the disabled attribute is set for this element.booleanReturnstrueif this select is using "multiple select".booleanReturnstrueif this element is read only.protected booleanReturns whether this element supports therequiredconstraint.booleanisValid()Returns whether this element satisfies all form validation constraints set.booleanbooleanvoidonAllChildrenAddedToPage(boolean postponed) If we were given an invalidsizeattribute, normalize it.voidremoveOption(int index) Remove an option at the given index.voidreplaceOption(int index, HtmlOption newOption) Replace an option at the given index with a new option.voidreset()Returns the value of this element to what it was at the time the page was loaded.protected voidsetAttributeNS(String namespaceURI, String qualifiedName, String attributeValue, boolean notifyAttributeChangeListeners, boolean notifyMutationObservers) Sets the value of the attribute specified by namespace and qualified name.voidsetCustomValidity(String message) Sets the custom validity message for the element to the specified message.voidsetDefaultChecked(boolean defaultChecked) Sets the default checked state to use when this element gets reset, if applicable.voidsetDefaultValue(String defaultValue) Sets the default value to use when this element gets reset, if applicable.voidsetOptionSize(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.voidsetSelectedIndex(int index) Sets the value of theselectedIndexproperty.booleanMethods 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, typeDoneMethods 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, writeStyleToElementMethods inherited from class org.htmlunit.html.DomNamespaceNode
getLocalName, getLowercaseName, getNamespaceURI, getPrefix, getQualifiedName, processImportNode, setPrefixMethods 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, setUserDataMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods 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, setUserDataMethods 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 invalidsizeattribute, 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:
onAllChildrenAddedToPagein classDomNode- Parameters:
postponed- whether to usePostponedActionor 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:
handlesin classHtmlElement- Parameters:
event- the event- Returns:
falseif 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:
appendChildin interfaceNode- Overrides:
appendChildin 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-trueif SHIFT is pressedctrlKey-trueif CTRL is pressedisClick- is mouse clicked- Returns:
- the page contained in the current window as returned
by
WebClient.getCurrentWindow()
-
getSubmitNameValuePairs
Returns an array of
NameValuePairs 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:
getSubmitNameValuePairsin 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:
resetin interfaceSubmittableElement
-
setDefaultValue
Sets the default value to use when this element gets reset, if applicable.- Specified by:
setDefaultValuein 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:
getDefaultValuein 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:
setDefaultCheckedin 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:
isDefaultCheckedin interfaceSubmittableElement- Returns:
- the default checked state to use when this element gets reset, if applicable
- See Also:
-
isMultipleSelectEnabled
public boolean isMultipleSelectEnabled()Returnstrueif this select is using "multiple select".- Returns:
trueif this select is using "multiple select"
-
getOptionByValue
Returns theHtmlOptionobject that corresponds to the specified value.- Parameters:
value- the value to search by- Returns:
- the
HtmlOptionobject that corresponds to the specified value - Throws:
ElementNotFoundException- If a particular element could not be found in the DOM model
-
getOptionByText
Returns theHtmlOptionobject that has the specified text.- Parameters:
text- the text to search by- Returns:
- the
HtmlOptionobject 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
nameor 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
sizeor 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
multipleor 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:
getDisabledAttributein interfaceDisabledElement- Returns:
- the value of the attribute
disabledor an empty string if that attribute isn't defined
-
isDisabled
public final boolean isDisabled()Returnstrueif the disabled attribute is set for this element.- Specified by:
isDisabledin interfaceDisabledElement- Returns:
trueif the disabled attribute is set for this element
-
isReadOnly
public boolean isReadOnly()Returnstrueif this element is read only.- Returns:
trueif 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
tabindexor 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
onfocusor 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
onbluror 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
onchangeor 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:
setAttributeNSin 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 associatedHtmlAttributeChangeListenersnotifyMutationObservers- to notifyMutationObservers or not
-
getOriginalName
Gets the first value of thenameattribute of this field before any change.- Specified by:
getOriginalNamein 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:
getNewNamesin 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:
getDefaultStyleDisplayin classHtmlElement- Returns:
- the default display style
-
getSelectedIndex
public int getSelectedIndex()Returns the value of theselectedIndexproperty.- Returns:
- the selectedIndex property
-
setSelectedIndex
public void setSelectedIndex(int index) Sets the value of theselectedIndexproperty.- 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 therequiredconstraint.- Overrides:
isRequiredSupportedin classHtmlElement- Returns:
- whether this element supports the
requiredconstraint
-
willValidate
public boolean willValidate()- Specified by:
willValidatein 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:
setCustomValidityin interfaceValidatableElement- Parameters:
message- the new message
-
isValid
public boolean isValid()Returns whether this element satisfies all form validation constraints set.- Overrides:
isValidin classHtmlElement- Returns:
- whether this element satisfies all form validation constraints set
-
isCustomErrorValidityState
public boolean isCustomErrorValidityState()- Specified by:
isCustomErrorValidityStatein 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:
isValidValidityStatein 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:
isValueMissingValidityStatein 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.
-