Package org.jsoup.nodes

## Class FormElement

- java.lang.Object
- - org.jsoup.nodes.Node
  - - org.jsoup.nodes.Element
    - - org.jsoup.nodes.FormElement

All Implemented Interfaces:
  `java.lang.Cloneable`

    public class FormElement
    extends Element

A HTML Form Element provides ready access to the form fields/controls that are associated with it. It also allows a form to easily be submitted.

### Constructor Summary

Constructors
`FormElement​(Tag tag, java.lang.String baseUri, Attributes attributes)` Create a new, standalone form element.

### Method Summary

All Methods Instance Methods Concrete Methods
`FormElement` `addElement​(Element element)` Add a form control element to this form.
`FormElement` `clone()` Create a stand-alone, deep copy of this node, and all of its children.
`Elements` `elements()` Get the list of form control elements associated with this form.
`java.util.List<Connection.KeyVal>` `formData()` Get the data that this form submits.
`protected void` `removeChild​(Node out)`
`Connection` `submit()` Prepare to submit this form.

### Methods inherited from class org.jsoup.nodes.Element

`addClass, after, after, append, appendChild, appendChildren, appendElement, appendText, appendTo, attr, attr, attributes, baseUri, before, before, child, childNodeSize, children, childrenSize, className, classNames, classNames, clearAttributes, closest, closest, cssSelector, data, dataNodes, dataset, doClone, doSetBaseUri, elementSiblingIndex, empty, ensureChildNodes, filter, firstElementSibling, getAllElements, getElementById, getElementsByAttribute, getElementsByAttributeStarting, getElementsByAttributeValue, getElementsByAttributeValueContaining, getElementsByAttributeValueEnding, getElementsByAttributeValueMatching, getElementsByAttributeValueMatching, getElementsByAttributeValueNot, getElementsByAttributeValueStarting, getElementsByClass, getElementsByIndexEquals, getElementsByIndexGreaterThan, getElementsByIndexLessThan, getElementsByTag, getElementsContainingOwnText, getElementsContainingText, getElementsMatchingOwnText, getElementsMatchingOwnText, getElementsMatchingText, getElementsMatchingText, hasAttributes, hasChildNodes, hasClass, hasText, html, html, html, id, id, insertChildren, insertChildren, is, is, isBlock, lastElementSibling, nextElementSibling, nextElementSiblings, nodeName, normalName, ownText, parent, parents, prepend, prependChild, prependChildren, prependElement, prependText, previousElementSibling, previousElementSiblings, removeAttr, removeClass, root, select, select, selectFirst, selectFirst, selectXpath, selectXpath, shallowClone, siblingElements, tag, tagName, tagName, text, text, textNodes, toggleClass, traverse, val, val, wholeText, wrap`

### Methods inherited from class org.jsoup.nodes.Node

`absUrl, addChildren, addChildren, attr, attributesSize, childNode, childNodes, childNodesAsArray, childNodesCopy, equals, hasAttr, hashCode, hasParent, hasSameValue, indent, nextSibling, outerHtml, outerHtml, ownerDocument, parentNode, previousSibling, remove, reparentChild, replaceChild, replaceWith, setBaseUri, setParentNode, setSiblingIndex, siblingIndex, siblingNodes, toString, unwrap`

### Methods inherited from class java.lang.Object

`finalize, getClass, notify, notifyAll, wait, wait, wait`

### Constructor Detail

#### FormElement

    public FormElement​(Tag tag,
                       java.lang.String baseUri,
                       Attributes attributes)

Create a new, standalone form element.

Parameters:
  `tag` - tag of this element
  `baseUri` - the base URI
  `attributes` - initial attributes

### Method Detail

#### elements

    public Elements elements()

Get the list of form control elements associated with this form.

Returns:
  form controls associated with this element.

#### addElement

    public FormElement addElement​(Element element)

Add a form control element to this form.

Parameters:
  `element` - form control to add
Returns:
  this form element, for chaining

#### removeChild

    protected void removeChild​(Node out)

Overrides:
  `removeChild` in class `Node`

#### submit

    public Connection submit()

Prepare to submit this form. A Connection object is created with the request set up from the form values. This Connection will inherit the settings and the cookies (etc) of the connection/session used to request this Document (if any), as available in `Document.connection()`

You can then set up other options (like user-agent, timeout, cookies), then execute it.

Returns:
  a connection prepared from the values of this form, in the same session as the one used to request it
Throws:
  `java.lang.IllegalArgumentException` - if the form's absolute action URL cannot be determined. Make sure you pass the document's base URI when parsing.

#### formData

    public java.util.List<Connection.KeyVal> formData()

Get the data that this form submits. The returned list is a copy of the data, and changes to the contents of the list will not be reflected in the DOM.

Returns:
  a list of key vals

#### clone

    public FormElement clone()

Description copied from class: `Node`
Create a stand-alone, deep copy of this node, and all of its children. The cloned node will have no siblings or parent node. As a stand-alone object, any changes made to the clone or any of its children will not impact the original node.

The cloned node may be adopted into another Document or node structure using `Element.appendChild(Node)`.

Overrides:
  `clone` in class `Element`
Returns:
  a stand-alone cloned node, including clones of any children
See Also:
  `Node.shallowClone()`