form
====

Resumen
-------

El elemento HTML form (`<form>`) representa una sección de un documento que contiene controles interactivos que permiten a un usuario enviar información a un servidor web.

Es posible usar las pseudo-clasess de CSS `:valid` e `:invalid` para darle estilos a un elemento form.

Contexto de uso
---------------

| Categorías de contenido | Contenido dinámico |
| --- | --- |
| Contenido permitido | Contenido dinámico, pero sin contener elementos `<form>` |
| Omisión de etiquetas | Ninguna, ambas, la etiqueta de apertura y cierre deben estar presentes |
| Normative document | HTML5, section 4.10.3 (HTML4.01, section 17.3) |

Atributos
---------

Como cualquier otro elemento HTML, este elemento soporta atributos globales

`accept` 
Obsoleto

Una lista separada por comas de los tipos de contenido que el servidor acepta.

**Nota:** este atributo ha sido removido en HTML5 y no debe ser usado. En su lugar, usar el atributo **accept** del elemento específico `<input>`.

`accept-charset`

Una lista de codificación de caracteres que el servidor acepta. La lista puede ser delimitada por espacios o comas. El navegador los usa en el orden en que cada uno son listados. Los valores por defecto es la cadena reservada "UNKNOWN", en tal caso la codificación corresponde a la codificación del documento conteniendo el elemento form.

HTML 4: En versiones anteriores de HTML, las diferentes codificaciones de caracteres pueden ser delimitadas por espacios o comas. Este no es más el caso en HTML5, donde sólo los espacios son correctos.

`action`

La URI de un programa que procesa la información enviada por medio del formulario. Este valor puede ser sobreescrito por un atributo `formaction` en un `<button>` o en el elemento`<input>`.

`autocomplete`

Indica cuales de los controles en este formulario puede tener sus valores automáticamente completados por el navegador. Esta configuración puede ser sobreescrita por un atributo `autocomplete` en un elemento que pertenezca al formulario:

* `off`: El usuario debe ingresar explicitamente cada valor dentro de cada campo por cada uso, o el documento provee su propio método de autocompletado; el navegador no autocompleta las entradas.
* `on`: El navegador puede completar automáticamente valores basados en lo que el usuario ha ingresado durante entradas previas al formulario.

**Nota:** si se establece `autocomplete` a un valor de `off` en un formulario porque el documento provee su propio auto-completado entonces también se debería establecer `autocomplete` al valor `off` para cada uno de los elementos de formulario `input` que el documento pueda autocompletar Notas para Google Chrome.

`enctype`

 Cuando el valor del atributo `method` es post, este atributo es el tipo MIME del contenido que es usado para enviar el formulario al servidor.
 Los posibles valores son:


* `application/x-www-form-urlencoded`: El valor por defecto si un atributo no está especificado.
* `multipart/form-data`: Usar este valor si se está usando el elemento `<input>` con el atributo `type` ajustado a "file".
* `text/plain` (HTML5)

Este valor puede ser sobreescrito por un atributo`formenctype`en un `<button>` o un elemento `<input>`.

`method`

El método HTTP que el navegador usa para enviar el formulario. Valores posibles son:

* `post`: Corresponde al método POST HTTP ; los datos del formulario son incluidos en el cuerpo del formulario y son enviados al servidor.
* `get`: Corresponde al método GET HTTP; los datos del formulario son adjuntados a la URI del atributo `action` , con un '?' como separador, y la URI resultante es enviada al servidor. Use este método cuando el formulario no tiene efectos secundarios y contiene solo caracteres ASCII.

Este valor puede ser sobreescrito por un atributo `formmethod` en un `<button>` o elemento `<input>`.

`name`

El nombre del formulario. En HTML4 ha quedado en desuso (debe usarse un id en su lugar). Debe ser único entre los formularios en un documento y no una cadena vacia en HTML5.

`novalidate`

Este atributo booleano indica que el formulario no es validado cuando es enviado. Si el atributo no existe `formnovalidate` en un `<button>` o en un elemento `<input>` que pertenece al formulario.

`target`

Un nombre o keyword indicando donde mostrar la respuesta que es recibida después de enviar el formulario. En HTML 4, este es el nombre de, o una palabra clave, para un marco. En HTML5, es un nombre de, o palabra clave para, un contexto de navegación (por ejemplo, tab, window o marco en línea). Las siguientes palabras clave tienen significados especiales:

* `_self`: Carga la respuesta dentro del mismo frame HTML 4 (o en HTML5, contexto de navegación) como el marco actual. Este valor es por defecto si el atributo no es especificado.
* `_blank`: Carga la respuesta dentro de una nueva ventana sin nombre en HTML 4 o un contexto de navegación en HTML5.
* `_parent`: Carga la respuesta en el marco padre del marco actual en HTML 4 o en el contexto de navegación padre del marco actual en HTML5. Si no hay marco padre, esta opción se comporta de la misma manera que \_self.
* `_top`: HTML 4: Carga la respuesta en toda la ventana original, cancelando otros marcos. HTML5: Carga la respuesta en el contexto de navegación de más alto nivel (esto es, el contexto de navegación que es ancestro del actual, y no tiene padre). Si no hay padre, esta opción se comporta igual que \_self.

HTML5: Este valor puede ser sobreescrito por un atributo `formtarget` en un elemento `<button>` o`<input>`.

Interfaz DOM
------------

Este elemento implementa la interfaz `HTMLFormElement`.

Ejemplos
--------


```html
<!-- Formulario simple que enviará una petición GET -->
<form action="">
  <label for="GET-name">Nombre:</label>
  <input id="GET-name" type="text" name="name" />
  <input type="submit" value="Save" />
</form>

<!-- Formulario simple que enviará una petición POST -->
<form action="" method="post">
  <label for="POST-name">Nombre:</label>
  <input id="POST-name" type="text" name="name" />
  <input type="submit" value="Save" />
</form>

<!-- Formulario con conjunto de campos, leyenda y etiqueta -->
<form action="" method="post">
  <fieldset>
    <legend>Título</legend>
    <input type="radio" name="radio" id="radio" />
    <label for="radio">Clic aquí</label>
  </fieldset>
</form>
```

Especificaciones
----------------

| Specification |
| --- |
| HTML Standard # the-form-element |

Compatibilidad con navegadores
------------------------------

BCD tables only load in the browser with JavaScript enabled. Enable JavaScript to view data.

Consulte también
----------------

Otros elementos que son usados para crear formularios: `<button>`, `<datalist>`, `<fieldset>`, `<input>`, `<label>`, `<legend>`, `<meter>` (en-US), `<optgroup>` (en-US), `<option>`, `<output>` (en-US), `<progress>`, `<select>`, `<textarea>`.