This article is in need of an editorial review.
Summary
The HTML <form> element represents a section of document that contains interactive controls that enable a user to submit information to a web server.
It is possible to use the :valid and :invalid CSS pseudo-classes to style a <form> element.
- Content categories Flow content, palpable content.
- Permitted content Flow content, but with no contained
<form>elements. - Tag omission None, both the starting and ending tag are mandatory.
- Permitted parent elements Any element that accepts flow content.
- DOM interface
HTMLFormElement
Attributes
This element includes the global attributes.
-
acceptHTML 4 - A comma-separated list of content types that the server accepts.
-
accept-charset -
A list of character encodings that the server accepts. The list can be delimited by spaces or commas. The browser uses in the order in which they are listed. The default value is the reserved string "UNKNOWN", in which case the encoding corresponds to the encoding of the document containing the form element.
HTML 4: In previous versions of HTML, the different character encodings could be delimited by spaces or commas. This is no longer the case in HTML5, where only spaces are correct. -
action -
The URI of a program that processes the information submitted via the form. This value can be overridden by a
formactionattribute on a<button>or<input>element. -
autocompleteHTML5 -
Indicates whether controls in this form can by default have their values automatically completed by the browser. This setting can be overridden by an
autocompleteattribute on an element belonging to the form. Possible values are:off: The user must explicitly enter a value into each field for every use, or the document provides its own auto-completion method; the browser does not automatically complete entries.on: The browser can automatically complete values based on values that the user has entered during previous uses of the form.
Note: If you set
autocompletetooffin a form because the document provides its own auto-completion, then you should also setautocompletetoofffor each of the form'sinputelements that the document can auto-complete. For details, see Google Chrome notes. -
enctype -
When the value of the
methodattribute ispost, this attribute is the MIME type of content that is used to submit the form to the server. Possible values are:application/x-www-form-urlencoded: The default value if the attribute is not specified.multipart/form-data: Use this value if you are using an<input>element with thetypeattribute set to "file".text/plain (HTML5)
This value can be overridden by a
formenctypeattribute on a<button>or<input>element. -
method -
The HTTP method that the browser uses to submit the form. Possible values are:
post: Corresponds to the HTTP POST method ; the data from the form is included in the body of the form and is sent to the server.get: Corresponds to the HTTP GET method; the data from the form are appended to theactionattribute URI, with a '?' as a separator, and the resulting URI is sent to the server. Use this method when the form has no side-effects and contains only ASCII characters.
This value can be overridden by a
formmethodattribute on a<button>or<input>element. -
name -
The name of the form. In HTML 4 its use is deprecated (
idshould be used instead). It must be unique among the forms in a document and not the empty string in HTML 5. -
novalidateHTML5 -
This Boolean attribute indicates that the form is not to be validated when it is submitted. If this attribute is missing (and therefore the form is validated), this default setting can be overridden by a
formnovalidateattribute on a<button>or<input>element belonging to the form. -
target -
A name or keyword indicating where to display the response that is received after submitting the form. In HTML 4, this is the name of, or a keyword for, a frame. In HTML5, it is a name of, or keyword for, a browsing context (for example, tab, window, or inline frame). The following keywords have special meanings:
_self: Load the response into the same HTML 4 frame (or HTML5 browsing context) as the current one. This value is the default if the attribute is not specified._blank: Load the response into a new unnamed HTML 4 window or HTML5 browsing context._parent: Load the response into the HTML 4 frameset parent of the current frame or HTML5 parent browsing context of the current one. If there is no parent, this option behaves the same way as_self._top: HTML 4: Load the response into the full, original window, canceling all other frames. HTML5: Load the response into the top-level browsing context (that is, the browsing context that is an ancestor of the current one, and has no parent). If there is no parent, this option behaves the same way as_self.- iframename: The response is displayed in a named
<iframe>.
HTML5: This value can be overridden by a
formtargetattribute on a<button>or<input>element.
Examples
<!-- Simple form which will send a GET request -->
<form action="">
<label for="GET-name">Name:</label>
<input id="GET-name" type="text" name="name">
<input type="submit" value="Save">
</form>
<!-- Simple form which will send a POST request -->
<form action="" method="post">
<label for="POST-name">Name:</label>
<input id="POST-name" type="text" name="name">
<input type="submit" value="Save">
</form>
<!-- Form with fieldset, legend, and label -->
<form action="" method="post">
<fieldset>
<legend>Title</legend>
<input type="radio" name="radio" id="radio"> <label for="radio">Click me</label>
</fieldset>
</form>
| 10 |