Package org.htmlunit.html

# Class HtmlButton

java.lang.Object
org.htmlunit.html.DomNode
org.htmlunit.html.DomNamespaceNode
org.htmlunit.html.DomElement
org.htmlunit.html.HtmlElement
org.htmlunit.html.HtmlButton

All Implemented Interfaces:
  `Serializable`, `Cloneable`, `DisabledElement`, `FormFieldWithNameHistory`, `LabelableElement`, `SubmittableElement`, `ValidatableElement`, `Element`, `Node`

public class HtmlButton extends HtmlElement implements DisabledElement, SubmittableElement, LabelableElement, FormFieldWithNameHistory, ValidatableElement
Wrapper for the HTML element "button".

See Also:
  - Serialized Form

- ## 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

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `TAG_NAME`
  The HTML tag represented by this element.

  ### Fields 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 Type
  Method
  Description
  `protected boolean`
  `doClickStateUpdate(boolean shiftKey, boolean ctrlKey)`
  This method implements the control state update part of the click action.
  `final String`
  `getAccessKeyAttribute()`
  Returns the value of the attribute `accesskey`.
  `HtmlElement.DisplayStyle`
  `getDefaultStyleDisplay()`
  INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
  Returns the default display style.
  `String`
  `getDefaultValue()`
  Returns the default value to use when this element gets reset, if applicable.
  `final String`
  `getDisabledAttribute()`
  Returns the value of the attribute `disabled`.
  `final String`
  `getNameAttribute()`
  Returns the value of the attribute `name`.
  `Collection<String>`
  `getNewNames()`
  Get all the names this field got after the original one.
  `final String`
  `getOnBlurAttribute()`
  Returns the value of the attribute `onblur`.
  `final String`
  `getOnFocusAttribute()`
  Returns the value of the attribute `onfocus`.
  `String`
  `getOriginalName()`
  Gets the first value of the `name` attribute of this field before any change.
  `NameValuePair[]`
  `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.
  `final String`
  `getTabIndexAttribute()`
  Returns the value of the attribute `tabindex`.
  `String`
  `getType()`
  `final String`
  `getTypeAttribute()`
  Returns the value of the attribute `type`.
  `final String`
  `getValueAttribute()`
  Returns the value of the attribute `value`.
  `boolean`
  `handles(org.htmlunit.javascript.host.event.Event event)`
  Indicates if the provided event can be applied to this node.
  `boolean`
  `isCustomErrorValidityState()`
  `boolean`
  `isDefaultChecked()`
  Returns the default checked state to use when this element gets reset, if applicable.
  `final boolean`
  `isDisabled()`
  Returns `true` if the disabled attribute is set for this element.
  `protected boolean`
  `isEmptyXmlTagExpanded()`
  Indicates if a node without children should be written in expanded form as XML (i.e. with closing tag rather than with "/>")
  `final boolean`
  `isFormNoValidate()`
  `boolean`
  `isReadOnly()`
  Returns `true` if this element is read only.
  `boolean`
  `isValid()`
  Returns whether this element satisfies all form validation constraints set.
  `boolean`
  `isValidValidityState()`
  `void`
  `reset()`
  Returns the value of this element to the default value or checked state (usually what it was at the time the page was loaded, unless it has been modified via JavaScript).
  `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.
  `final void`
  `setFormNoValidate(boolean noValidate)`
  Sets the value of the attribute `formnovalidate`.
  `void`
  `setValueAttribute(String newValue)`
  Sets the content of the `value` attribute.
  `boolean`
  `willValidate()`

  ### 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, isRequiredSupported, 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, 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, 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, appendChild, 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, onAllChildrenAddedToPage, 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

  `appendChild, 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, isValueMissingValidityState`

- ## Field Details

  - ### TAG_NAME

    public static final String TAG_NAME
    The HTML tag represented by this element.
    See Also:
      - Constant Field Values

- ## Method Details

  - ### setValueAttribute

    public void setValueAttribute(String newValue)
    Sets the content of the `value` attribute.
    Parameters:
      `newValue` - the new content

  - ### doClickStateUpdate

    protected boolean doClickStateUpdate(boolean shiftKey, boolean ctrlKey) throws IOException
    This method implements the control state update part of the click action.

    The default implementation only calls doClickStateUpdate on parent's DomElement (if any). Subclasses requiring different behavior (like `HtmlSubmitInput`) will override this method.

    Overrides:
      `doClickStateUpdate` in class `DomElement`
    Parameters:
      `shiftKey` - `true` if SHIFT is pressed
      `ctrlKey` - `true` if CTRL is pressed
    Returns:
      true if doClickFireEvent method has to be called later on (to signal, that the value was changed)
    Throws:
      `IOException` - if an IO error occurs

  - ### 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

  - ### isReadOnly

    public boolean isReadOnly()
    Returns `true` if this element is read only.
    Returns:
      `true` if this element is read only

  - ### getSubmitNameValuePairs

    public NameValuePair[] 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 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 the default value or checked state (usually what it was at the time the page was loaded, unless it has been modified via JavaScript).
    Specified by:
      `reset` in interface `SubmittableElement`
    See Also:
      - `SubmittableElement.reset()`

  - ### setDefaultValue

    public void setDefaultValue(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 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.getDefaultValue()`

  - ### 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 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()`

  - ### 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 class `HtmlElement`
    Parameters:
      `event` - the event
    Returns:
      `false` if the event can't be applied

  - ### getNameAttribute

    public final 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

  - ### getValueAttribute

    public final String getValueAttribute()
    Returns the value of the attribute `value`. Refer to the HTML 4.01 documentation for details on the use of this attribute.
    Returns:
      the value of the attribute `value` or an empty string if that attribute isn't defined

  - ### getTypeAttribute

    public final String getTypeAttribute()
    Returns the value of the attribute `type`. Refer to the HTML 4.01 documentation for details on the use of this attribute.
    Returns:
      the value of the attribute `type` or the default value if that attribute isn't defined

  - ### getType

    public String getType()
    Returns:
      the normalized type value (submit|reset|button).

  - ### getDisabledAttribute

    public final 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

  - ### getTabIndexAttribute

    public final 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

  - ### getAccessKeyAttribute

    public final String getAccessKeyAttribute()
    Returns the value of the attribute `accesskey`. Refer to the HTML 4.01 documentation for details on the use of this attribute.
    Returns:
      the value of the attribute `accesskey` or an empty string if that attribute isn't defined

  - ### getOnFocusAttribute

    public final 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 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

  - ### 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 class `HtmlElement`
    Parameters:
      `namespaceURI` - the URI that identifies an XML namespace
      `qualifiedName` - the qualified name (prefix:local) of the attribute
      `attributeValue` - the value of the attribute
      `notifyAttributeChangeListeners` - to notify the associated `HtmlAttributeChangeListener`s
      `notifyMutationObservers` - to notify `MutationObserver`s or not

  - ### getOriginalName

    public String getOriginalName()
    Gets the first value of the `name` attribute of this field before any change.
    Specified by:
      `getOriginalName` in interface `FormFieldWithNameHistory`
    Returns:
      the original name (which is the same as the current one when no change has been made)

  - ### getNewNames

    public Collection<String> getNewNames()
    Get all the names this field got after the original one.
    Specified by:
      `getNewNames` in interface `FormFieldWithNameHistory`
    Returns:
      an empty collection if the name attribute has never been changed.

  - ### getDefaultStyleDisplay

    public HtmlElement.DisplayStyle getDefaultStyleDisplay()
    INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
    Returns the default display style.
    Overrides:
      `getDefaultStyleDisplay` in class `HtmlElement`
    Returns:
      the default display style

  - ### isEmptyXmlTagExpanded

    protected boolean isEmptyXmlTagExpanded()
    Indicates if a node without children should be written in expanded form as XML (i.e. with closing tag rather than with "/>")
    Overrides:
      `isEmptyXmlTagExpanded` in class `DomElement`
    Returns:
      `true` to make generated XML readable as HTML.

  - ### isValid

    public boolean isValid()
    Returns whether this element satisfies all form validation constraints set.
    Overrides:
      `isValid` in class `HtmlElement`
    Returns:
      whether this element satisfies all form validation constraints set

  - ### willValidate

    public boolean willValidate()
    Specified by:
      `willValidate` in interface `ValidatableElement`
    Returns:
      whether the element is a candidate for constraint validation

  - ### setCustomValidity

    public void setCustomValidity(String message)
    Sets the custom validity message for the element to the specified message.
    Specified by:
      `setCustomValidity` in interface `ValidatableElement`
    Parameters:
      `message` - the new message

  - ### isCustomErrorValidityState

    public boolean isCustomErrorValidityState()
    Specified by:
      `isCustomErrorValidityState` in interface `ValidatableElement`
    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 interface `ValidatableElement`
    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.

  - ### isFormNoValidate

    public final boolean isFormNoValidate()
    Returns:
      the value of the attribute `formnovalidate` or an empty string if that attribute isn't defined

  - ### setFormNoValidate

    public final void setFormNoValidate(boolean noValidate)
    Sets the value of the attribute `formnovalidate`.
    Parameters:
      `noValidate` - the value of the attribute `formnovalidate`