public enum FormControlType extends java.lang.Enum<FormControlType>
FormControl.
Use the FormControl.getFormControlType() method to determine the type of a form control.
The following table shows the relationship between the HTML 4.01 specification control type descriptions,
their associated Element names and attributes, and the FormControlType constants defined in this class:
| Description | Element Name | Distinguishing Attribute | FormControlType
|
|---|---|---|---|
| buttons - submit button | BUTTON
| type="submit"
| BUTTON
|
INPUT
| type="submit"
| SUBMIT
| |
type="image"
| IMAGE
| ||
| buttons - reset button | BUTTON,
INPUT
| type="reset"
| - |
| buttons - push button | BUTTON,
INPUT
| type="button"
| - |
| checkboxes | INPUT
| type="checkbox"
| CHECKBOX
|
| radio buttons | INPUT
| type="radio"
| RADIO
|
| menus | SELECT
| multiple
| SELECT_MULTIPLE
|
absence of multiple
| SELECT_SINGLE
| ||
| text input | INPUT
| type="text"
| TEXT
|
type="password"
| PASSWORD
| ||
TEXTAREA
| - | TEXTAREA
| |
| file select | INPUT
| type="file"
| FILE
|
| hidden controls | INPUT
| type="hidden"
| HIDDEN
|
| object controls | OBJECT
| -
|
FormControlType because they do not contribute to the
form data set
of a submitted form,
and so have no relevance to the methods provided in the FormControl and associated classes.
If required they can be found and manipulated as normal elements.
Object controls
have no associated FormControlType because any data they might contribute to the
form data set
is entirely dependent on the
class of object,
the interpretation of which is is beyond the scope of this library.
This library does not consider the
OPTION
elements found within
SELECT
elements to be controls themselves, despite them being referred to as such in some
parts
of the HTML 4.01 specification.
Hence the absence of an OPTION control type.
FormControl,
FormField| Enum Constant and Description |
|---|
BUTTON
The form control type given to a submit button control implemented using a
BUTTON element. |
CHECKBOX
The form control type given to a checkbox control.
|
FILE
The form control type given to a file select control.
|
HIDDEN
The form control type given to a hidden control.
|
IMAGE
The form control type given to a submit button control implemented using an
INPUT element with attribute
type="image". |
PASSWORD
The form control type given to a text input control implemented using an
INPUT element with attribute
type="password". |
RADIO
The form control type given to a radio button control.
|
SELECT_MULTIPLE
|
SELECT_SINGLE
|
SUBMIT
The form control type given to a submit button control implemented using an
INPUT element with attribute
type="submit". |
TEXT
The form control type given to a text input control implemented using an
INPUT element with attribute
type="text". |
TEXTAREA
The form control type given to a text input control implemented using a
TEXTAREA element. |
| Modifier and Type | Method and Description |
|---|---|
java.lang.String |
getElementName()
|
boolean |
hasPredefinedValue()
Indicates whether any value
submitted by this type of control is predefined in the HTML and typically not modified by the user or server/client scripts.
|
boolean |
isSubmit()
Indicates whether this control type causes the form to be submitted.
|
static FormControlType |
valueOf(java.lang.String name)
Returns the enum constant of this type with the specified name.
|
static FormControlType[] |
values()
Returns an array containing the constants of this enum type, in
the order they are declared.
|
public static final FormControlType BUTTON
BUTTON element.
<button type="submit" name="FieldName" value="PredefinedValue">Send</button>
getElementName() = HTMLElementName.BUTTONhasPredefinedValue() = trueisSubmit() = truepublic static final FormControlType CHECKBOX
<input type="checkbox" name="FieldName" value="PredefinedValue" />
getElementName() = HTMLElementName.INPUThasPredefinedValue() = trueisSubmit() = falsepublic static final FormControlType FILE
This library considers the submission value of this type of control to be consist of only the selected file name, regardless of whether the file content would normally be included in the form data set.
To determine manually whether the file content is included in the form data set, the
enctype
attribute of the control's associated FORM
element can be examined.
Although the exact behaviour is not defined in the HTML 4.01 specification, the convention is that the content
is not included unless an enctype value of
"multipart/form-data"
is specified.
For more information see the HTML 4.01 specification section 17.13.4 - Form content types.
<input type="file" name="FieldName" value="DefaultFileName" />
getElementName() = HTMLElementName.INPUThasPredefinedValue() = falseisSubmit() = falsepublic static final FormControlType HIDDEN
<input type="hidden" name="FieldName" value="DefaultValue" />
getElementName() = HTMLElementName.INPUThasPredefinedValue() = falseisSubmit() = falsehasPredefinedValue() returns false for this control type
because the value of hidden fields is usually set via server or client side scripting.public static final FormControlType IMAGE
INPUT element with attribute
type="image".
See the description under the heading "image" in the HTML 4.01 specification section 17.4.1 - Form control types created with INPUT.
When a form control of type IMAGE is present in the form used to
construct a FormFields instance, three separate
FormField objects are created for the one control.
One has the name specified in the
name
attribute of the INPUT element, and the other two have this name with the suffixes
".x" and ".y" appended to them to represent the additional
click coordinates
submitted by this control when activated using a pointing device.
This type of control is also mentioned in the HTML 4.01 specification section 13.6.2 - Server-side image maps.
<input type="image" name="FieldName" src="ImageURL" value="PredefinedValue" />
getElementName() = HTMLElementName.INPUThasPredefinedValue() = trueisSubmit() = truepublic static final FormControlType PASSWORD
INPUT element with attribute
type="password".
<input type="password" name="FieldName" value="DefaultValue" />
getElementName() = HTMLElementName.INPUThasPredefinedValue() = falseisSubmit() = falsepublic static final FormControlType RADIO
<input type="radio" name="FieldName" value="PredefinedValue" />
getElementName() = HTMLElementName.INPUThasPredefinedValue() = trueisSubmit() = falsepublic static final FormControlType SELECT_MULTIPLE
SELECT element containing
the attribute "multiple".
SELECT elements that do not contain the attribute "multiple" are represented by the
SELECT_SINGLE form control type.
This is the only control type that can have multiple
submission values within the one control.
Contrast this with CHECKBOX controls, which require multiple separate controls with the same
name in order to contribute multiple submission values.
The individual OPTION elements contained within a form control of this type can be
obtained using the FormControl.getOptionElementIterator() method.
The most efficient way to test whether a form control type is either SELECT_MULTIPLE or SELECT_SINGLE
is to test for getElementName()==HTMLElementName.SELECT.
<select name="FieldName" multiple>
<option value="PredefinedValue1" selected>Display Text1</option>
<option value="PredefinedValue2">Display Text2</option>
</select>
getElementName() = HTMLElementName.SELECThasPredefinedValue() = trueisSubmit() = falsepublic static final FormControlType SELECT_SINGLE
SELECT element that does
not contain the attribute "multiple".
SELECT elements that do contain the attribute "multiple" are represented by the
SELECT_MULTIPLE form control type.
The individual OPTION elements contained within a form control of this type can be
obtained using the FormControl.getOptionElementIterator() method.
The most efficient way to test whether a form control type is either SELECT_MULTIPLE or SELECT_SINGLE
is to test for getElementName()==HTMLElementName.SELECT.
<select name="FieldName">
<option value="PredefinedValue1" selected>Display Text1</option>
<option value="PredefinedValue2">Display Text2</option>
</select>
getElementName() = HTMLElementName.SELECThasPredefinedValue() = trueisSubmit() = falsepublic static final FormControlType SUBMIT
INPUT element with attribute
type="submit".
<input type="submit" name="FieldName" value="PredefinedValue" />
getElementName() = HTMLElementName.INPUThasPredefinedValue() = trueisSubmit() = truepublic static final FormControlType TEXT
INPUT element with attribute
type="text".
<input type="text" name="FieldName" value="DefaultValue" />
getElementName() = HTMLElementName.INPUThasPredefinedValue() = falseisSubmit() = falsepublic static final FormControlType TEXTAREA
TEXTAREA element.
<textarea name="FieldName">Default Value</textarea>
getElementName() = HTMLElementName.TEXTAREAhasPredefinedValue() = falseisSubmit() = falsepublic static FormControlType[] values()
for (FormControlType c : FormControlType.values()) System.out.println(c);
public static FormControlType valueOf(java.lang.String name)
name - the name of the enum constant to be returned.java.lang.IllegalArgumentException - if this enum type has no constant with the specified namejava.lang.NullPointerException - if the argument is nullpublic java.lang.String getElementName()
public boolean hasPredefinedValue()
The word "typically" is used because the use of client side scripts can cause control types which normally have predefined values to be set by the user, which is a condition which is beyond the scope of this library to test for.
The predefined value is defined by the control's initial value.
A return value of true signifies that a form control of this type is a
predefined value control.
A return value of false signifies that a form control of this type is a
user value control.
Note that the HIDDEN type returns false for this method because the value of hidden fields is usually set via server or client side scripting.
true if any value submitted by this type of control is predefined in the HTML and typically not modified by the user or server/client scripts, otherwise false.