Class HtmlInput

All Implemented Interfaces:
Serializable, Cloneable, DisabledElement, FormFieldWithNameHistory, SubmittableElement, ValidatableElement, Element, Node
Direct Known Subclasses:
HtmlButtonInput, HtmlCheckBoxInput, HtmlColorInput, HtmlDateTimeLocalInput, HtmlFileInput, HtmlHiddenInput, HtmlImageInput, HtmlMonthInput, HtmlRadioButtonInput, HtmlRangeInput, HtmlResetInput, HtmlSelectableTextInput, HtmlSubmitInput, HtmlWeekInput

public abstract class HtmlInput extends HtmlElement implements DisabledElement, SubmittableElement, FormFieldWithNameHistory, ValidatableElement
Wrapper for the HTML element "input".
See Also:
  • Field Details

  • Constructor Details

    • HtmlInput

      public HtmlInput(SgmlPage page, Map<String,DomAttr> attributes)
      Creates an instance.
      Parameters:
      page - the page that contains this element
      attributes - the initial attributes
    • HtmlInput

      public HtmlInput(String qualifiedName, SgmlPage page, Map<String,DomAttr> attributes)
      Creates an instance.
      Parameters:
      qualifiedName - the qualified name of the element type to instantiate
      page - the page that contains this element
      attributes - the initial attributes
  • Method Details

    • setValueAttribute

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

      public NameValuePair[] 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:
      getSubmitNameValuePairs in interface SubmittableElement
      Returns:
      the values that will be sent back to the server whenever this element's containing form is submitted
    • 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 an empty string if that attribute isn't defined
    • 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()

      Return 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
    • getValue

      public String getValue()
      Returns:
      the value
    • setValue

      public void setValue(String newValue)
      Sets the value.
      Parameters:
      newValue - the new value
    • valueAttributeChanged

      protected void valueAttributeChanged(String attributeValue, boolean isValueDirty)
    • getCheckedAttribute

      public final String getCheckedAttribute()
      Returns the value of the attribute checked. Refer to the HTML 4.01 documentation for details on the use of this attribute.
      Returns:
      the value of the attribute checked or an empty string if that attribute isn't defined
    • 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
    • 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
    • getReadOnlyAttribute

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

      public final 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.
    • getMaxLengthAttribute

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

      protected int getMaxLength()
      Gets the max length if defined, Integer.MAX_VALUE if none.
      Returns:
      the max length
    • getMinLengthAttribute

      public final String getMinLengthAttribute()
      Returns the value of the attribute minlength. Refer to the HTML 5 documentation for details on the use of this attribute.
      Returns:
      the value of the attribute minlength or an empty string if that attribute isn't defined.
    • getMinLength

      protected int getMinLength()
      Gets the min length if defined, Integer.MIN_VALUE if none.
      Returns:
      the min length
    • getSrcAttribute

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

      public String getSrc()
      Returns the value of the src value.
      Returns:
      the value of the src value
    • setSrcAttribute

      public void setSrcAttribute(String src)
      Sets the src attribute.
      Parameters:
      src - the src attribute
    • getAltAttribute

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

      public final String getUseMapAttribute()
      Returns the value of the attribute usemap. Refer to the HTML 4.01 documentation for details on the use of this attribute.
      Returns:
      the value of the attribute usemap 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.
    • getOnSelectAttribute

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

      public final 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.
    • getAcceptAttribute

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

      public final String getAlignAttribute()
      Returns the value of the attribute align. Refer to the HTML 4.01 documentation for details on the use of this attribute.
      Returns:
      the value of the attribute align or an empty string if that attribute isn't defined.
    • 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:
    • 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:
    • 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:
    • getRawValue

      public String getRawValue()
      INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
      Returns:
      the raw value
    • setRawValue

      public void setRawValue(String rawValue)
      INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
      Update the raw value.
      Parameters:
      rawValue - the new raw value
    • isDefaultChecked

      public boolean isDefaultChecked()
      Returns the default checked state to use when this element gets reset, if applicable. The default 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:
    • setChecked

      public Page setChecked(boolean isChecked)
      Sets the checked attribute, returning the page that occupies this input's window after setting the attribute. Note that the returned page may or may not be the original page, depending on the presence of JavaScript event handlers, etc.
      Parameters:
      isChecked - true if this element is to be selected
      Returns:
      the page that occupies this input's window after setting the attribute
    • setReadOnly

      public void setReadOnly(boolean isReadOnly)
      Sets the readOnly attribute.
      Parameters:
      isReadOnly - true if this element is read only
    • isChecked

      public boolean isChecked()
      Returns true if this element is currently selected.
      Returns:
      true if this element is currently selected
    • isReadOnly

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

      protected boolean propagateClickStateUpdateToParent()
      Overrides:
      propagateClickStateUpdateToParent in class DomElement
      Returns:
      true or false
      See Also:
    • 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
    • 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 HtmlAttributeChangeListeners
      notifyMutationObservers - to notify MutationObservers 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.
    • valueModifiedByJavascript

      public void valueModifiedByJavascript()
      INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
      Marks this element as modified (value) by javascript. This is needed to support maxlength/minlength validation.
    • focus

      public final void focus()
      Sets the focus on this element.
      Overrides:
      focus in class DomElement
    • removeFocus

      public final void removeFocus()
      INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
      Gets notified that it has lost the focus.
      Overrides:
      removeFocus in class DomElement
    • getInternalValue

      protected Object getInternalValue()
      Returns:
      returns the raw value
    • 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
    • getSize

      public String getSize()
      Returns the value of the size attribute.
      Returns:
      the value of the size attribute
    • setSize

      public void setSize(String size)
      Sets the size attribute.
      Parameters:
      size - the size attribute
    • setMaxLength

      public void setMaxLength(int maxLength)
      Sets the maxLength attribute.
      Parameters:
      maxLength - the maxLength attribute
    • setMinLength

      public void setMinLength(int minLength)
      Sets the minLength attribute.
      Parameters:
      minLength - the minLength attribute
    • getAccept

      public String getAccept()
      Returns the value of the accept attribute.
      Returns:
      the value of the accept attribute
    • setAccept

      public void setAccept(String accept)
      Sets the accept attribute.
      Parameters:
      accept - the accept attribute
    • getAutocomplete

      public String getAutocomplete()
      Returns the value of the autocomplete attribute.
      Returns:
      the value of the autocomplete attribute
    • setAutocomplete

      public void setAutocomplete(String autocomplete)
      Sets the autocomplete attribute.
      Parameters:
      autocomplete - the autocomplete attribute
    • getPlaceholder

      public String getPlaceholder()
      Returns the value of the placeholder attribute.
      Returns:
      the value of the placeholder attribute
    • setPlaceholder

      public void setPlaceholder(String placeholder)
      Sets the placeholder attribute.
      Parameters:
      placeholder - the placeholder attribute
    • getPattern

      public String getPattern()
      Returns the value of the pattern attribute.
      Returns:
      the value of the pattern attribute
    • setPattern

      public void setPattern(String pattern)
      Sets the pattern attribute.
      Parameters:
      pattern - the pattern attribute
    • getMin

      public String getMin()
      Returns the value of the min attribute.
      Returns:
      the value of the min attribute
    • setMin

      public void setMin(String min)
      Sets the min attribute.
      Parameters:
      min - the min attribute
    • getMax

      public String getMax()
      Returns the value of the max attribute.
      Returns:
      the value of the max attribute
    • setMax

      public void setMax(String max)
      Sets the max attribute.
      Parameters:
      max - the max attribute
    • getStep

      public String getStep()
      Returns the value of the step attribute.
      Returns:
      the value of the step attribute
    • setStep

      public void setStep(String step)
      Sets the step attribute.
      Parameters:
      step - the step attribute
    • isValid

      public boolean isValid()
      Description copied from class: HtmlElement
      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
    • isCustomValidityValid

      protected boolean isCustomValidityValid()
    • isRequiredSupported

      protected boolean isRequiredSupported()
      Description copied from class: HtmlElement
      Returns whether this element supports the required constraint.
      Overrides:
      isRequiredSupported in class HtmlElement
      Returns:
      whether this element supports the required constraint
    • isPatternSupported

      protected boolean isPatternSupported()
      Returns if the input element supports pattern validation. Refer to the HTML 5 documentation for details.
      Returns:
      if the input element supports pattern validation
    • isBlankPatternValidated

      protected boolean isBlankPatternValidated()
      Returns:
      if the element executes pattern validation on blank strings
    • isMinMaxLengthSupported

      protected boolean isMinMaxLengthSupported()
      Returns if the input element supports maxlength minlength validation. Refer to the HTML 5 documentation for details.
      Returns:
      if the input element supports pattern validation
    • cloneNode

      public DomNode cloneNode(boolean deep)
      Specified by:
      cloneNode in interface Node
      Overrides:
      cloneNode in class HtmlElement
    • 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
    • isCheckable

      public boolean isCheckable()
      Returns:
      whether this is a checkbox or a radio button
    • isSubmitable

      public boolean isSubmitable()
      Returns:
      false for type submit/resest/image/button otherwise true
    • 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.
    • hasPatternMismatchValidityState

      public boolean hasPatternMismatchValidityState()
      Specified by:
      hasPatternMismatchValidityState in interface ValidatableElement
      Returns:
      true if the value does not match the specified pattern, and false if it does match. If true, the element matches the :invalid CSS pseudo-class
    • isTooShortValidityState

      public boolean isTooShortValidityState()
      Specified by:
      isTooShortValidityState in interface ValidatableElement
      Returns:
      true if the value is shorter than the minimum length specified by the minlength attribute, or false if it is greater than or equal to the minimum. If true, the element matches the :invalid CSS pseudo-class
    • 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.
    • isValueMissingValidityState

      public boolean isValueMissingValidityState()
      Specified by:
      isValueMissingValidityState in interface ValidatableElement
      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.
    • 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
    • getType

      public final String getType()
      Returns:
      the type property
    • changeType

      public HtmlInput changeType(String newType, boolean setThroughAttribute)
      INTERNAL API - SUBJECT TO CHANGE AT ANY TIME - USE AT YOUR OWN RISK.
      Changes the type of the current HtmlInput. Because there are several subclasses of HtmlInput, changing the type attribute is not sufficient, this will replace the HtmlInput element in the DOM tree with a new one (at least of the newType is different from the old one).
      The js peer object is still the same (there is only a HTMLInputElement without any sublcasses).
      This returns the new (or the old) HtmlInput element to ease the use of this method.
      Parameters:
      newType - the new type to set
      setThroughAttribute - set type value through setAttribute()
      Returns:
      the new or the old HtmlInput element
    • adjustValueAfterTypeChange

      protected void adjustValueAfterTypeChange(HtmlInput oldInput, BrowserVersion browserVersion)
    • unmarkValueDirty

      protected void unmarkValueDirty()
    • markValueDirty

      protected void markValueDirty()