Elemento input (type=submit)

Si no sabes lo que es un elemento o cómo debes usarlo, te recomiendo leer el tutorial "Tags y atributos en HTML" que puedes encontrar en la sección de tutoriales HTML.

Descripción

El elemento input, teniendo el valor "submit" en su atributo type, representa un botón que, cuando es presionado, envía el formulario (form) al que pertenece.

Con el arribo de HTML5, varios atributos nuevos han sido agregados a este elemento (formaction, formenctype, formmethod, formnovalidate y formtarget) que definen y anulan ciertos parámetros relacionados a cómo el formulario debe ser enviado. Estos nuevos atributos pueden ser usados, por ejemplo, para proveer más de un botón de envío en un mismo formulario, y hacer que cada uno de ellos lleve a cabo un tipo diferente de envío.

El atributo value tiene un significado particular para este elemento: representa la etiqueta del botón, la cual es normalmente mostrada por los navegadores dentro de éste.

Ejemplos

En nuestro primer ejemplo crearemos un formulario (form) básico con un par de campos y un botón de envío. Aquí podrás ver y probar la funcionalidad del botón de envío: cuando lo presionas, el formulario es automáticamente enviado.

<form action="../../form-result.php" method="post" target="_blank">
  <p>Usuario: <input type="text" name="usuario"></p>
  <p>Contraseña: <input type="password" name="pass"></p>
  <p><input type="submit" value="Enviar datos"></p>
</form>

Usuario:

Contraseña:

Ahora proveeremos dos botones de envío en el mismo formulario, y haremos que cada uno realice un tipo distinto de envío. Mientras el primer botón usa la configuración por defecto declarada en el elemento form, el segundo anula algunos de los atributos originales y produce un envío mediante el método GET y sin validación de los datos.

<form action="../../form-result.php" method="post" target="_blank">
  <p>Usuario: <input type="text" name="usuario" pattern="^[a-zA-Z][a-zA-Z0-9-_\.]{3,15}$" title="Un nombre de usuario apropiado debe comenzar con una letra, contener letras, números, guiones bajos y puntos, y tener entre 3 y 15 caracteres de longitud" required></p>
  <p>Contraseña: <input type="password" name="pass" pattern="[a-zA-Z0-9]{6,15}" title="Una contraseña válida debe estar compuesta por letras y/o números y tener una longitud entre 6 y 15 caracteres" required></p>
  <p>
    <input type="submit" value="Enviar">
    <input type="submit" value="Enviar sin validación" formmethod="get" formnovalidate>
  </p>
</form>

Usuario:

Contraseña:

Atributos

Atributos específicos

autofocus

Un valor booleano que instruye al navegador a establecer el enfoque sobre este control cuando el documento termina de cargarse o cuando el cuadro de diálogo (dialog) donde el control se encuentra es mostrado. Si el atributo tiene el valor "autofocus" o la cadena vacía (""), o si simplemente está presente, el control debería obtener el enfoque tan pronto como sea posible, luego de que la página o cuadro de diálogo hayan sido cargados.

Ejemplo

<p><input type="submit" value="Enviar datos" autofocus></p>

disabled

Un valor booleano que indica si el control se encuentra deshabilitado o no. Si el atributo toma el valor "disabled" o la cadena vacía (""), o si está simplemente presente, el control estará deshabilitado.

Los controles deshabilitados son representados en color gris (si son visibles), son impedidos para interactuar con el usuario y, lo más importante, sus valores (si lo tienen) no son enviados cuando el formulario es despachado.

Ejemplo

<form action="../../form-result.php" method="post" target="_blank">
  <p>
    Palabra clave: <input type="text" name="palabraclave">
    <input type="submit" value="Enviar datos" disabled>
  </p>
</form>

Palabra clave:

form

El valor del atributo id del formulario con el que este control está asociado.

Este atributo es nuevo en HTML5 y ayuda a definir la pertenencia de los controles en formularios anidados o distantes.

Ejemplo

<form id="formulario1" action="../../form-result.php" method="post" target="_blank">
  <p>Apellido: <input type="text" name="apellido"><p>
</form>
<p><input type="submit" value="Enviar datos" form="formulario1"></p>

Apellido:

formaction

Un URI que indica la ubicación del programa responsable de la manipulación de los datos enviados por el formulario. Este programa está normalmente escrito en un lenguaje del lado servidor como ASP, PHP, Python, etc.

Este atributo es nuevo en HTML5 y, si está presente, anula al atributo action del elemento form. Esto permite a los autores proveer un formulario con dos o más botones que lleven a cabo diferentes tipos de envíos.

Ejemplo

<form method="post" target="_blank">
  <p>
    Apodo: <input type="text" name="apodo">
    <input type="submit" value="Enviar datos" formaction="../../form-result.php">
  </p>
</form>

Apodo:

formenctype

Un valor que especifica el método de codificación a utilizarse para los datos cuando el formulario es enviado. Existen tres valores posibles, insensibles a mayúsculas/minúsculas:

  • application/x-www-form-urlencoded: los espacios son reemplazados con signos más ("+") y los caracteres especiales son convertidos a valores HEX. Este es el valor por defecto.
  • multipart/form-data: no se aplica ninguna codificación. Este valor es necesario para la subida de archivos.
  • text/plain: solo los espacios son reemplazados por signos más ("+").

Recuerda que debes usar el valor "multipart/form-data" siempre que un archivo vaya a ser subido en el formulario. Sin esta configuración, la subida de archivos fallará.

Este atributo es nuevo en HTML5 y, si está presente, anula al atributo enctype del elemento form. Esto permite a los autores proveer un formulario con dos o más botones que lleven a cabo diferentes tipos de envíos.

Ejemplo

<form action="../../form-result.php" target="_blank">
  <p>Nombre completo: <input type="text" name="nombrecompleto"></p>
  <p>Foto: <input type="file" name="foto"></p>
  <p>
    <input type="submit" value="Enviar con foto" formenctype="multipart/form-data">
    <input type="submit" value="Enviar sin foto">
  </p>
</form>

Nombre completo:

Foto:

formmethod

El método que deberían usar los navegadores para enviar la información del formulario. Existen tres valores posibles, insensibles a mayúsculas/minúsculas:

  • get: los datos se adjuntan al URL de la petición (el provisto en el atributo action). Los pares nombre-valor se organizan de la forma "nombre=valor" y se separan unos de otros con un signo "&". Toda esta cadena es sumada al URL de la petición, precedida por un signo de interrogación ("?"). Por ejemplo, una cadena GET podría ser: "resultados.php?usuario=john&pass=123456"
  • post: los datos se adjuntan al cuerpo de la petición.
  • dialog: específico para formularios dentro de un elemento dialog. Instruye al navegador a cerrar el cuadro de diálogo cuando el formulario es enviado. Los resultados del formulario deberían ser manipulados por programas.

Este atributo es nuevo en HTML5 y, si está presente, anula al atributo method del elemento form. Esto permite a los autores proveer un formulario con dos o más botones que lleven a cabo diferentes tipos de envíos.

Ejemplo

<form action="../../form-result.php" target="_blank">
  <p>
    Ciudad: <input type="text" name="ciudad">
    <input type="submit" value="Enviar con GET" formmethod="get">
    <input type="submit" value="Enviar con POST" formmethod="post">
  </p>
</form>

Ciudad:

formtarget

Un valor que especifica dónde deberían cargarse los resultados del programa a cargo del procesamiento de los datos. Este valor puede ser un nombre de contexto de navegación (como el valor del atributo name de un iframe) o cualquiera de los siguientes valores (insensibles a mayúsculas/minúsculas):

  • _blank: en una nueva ventana/pestaña.
  • _parent: en el contexto padre inmediato.
  • _self: en el mismo contexto que contiene al formulario.
  • _top: en el más alto contexto de naveción (el contexto más exterior que contiene al formulario).

Este atributo es nuevo en HTML5 y, si está presente, anula al atributo target del elemento form. Esto permite a los autores proveer un formulario con dos o más botones que lleven a cabo diferentes tipos de envíos.

Ejemplo

<form action="../../form-result.php" method="post">
  <p>
    Grupo: <input type="text" name="grupo">
    <input type="submit" value="Enviar" formtarget="_blank">
  </p>
</form>

Grupo:

formnovalidate

Un valor booleano que instruye al navegador a no validar los datos del formulario durante su envío. Si este atributo toma los valores "formnovalidate" o la cadena vacía (""), o si simplemente está presente, el navegador debería omitir la validación del formulario durante el envío.

Este atributo es nuevo en HTML5 y, si está presente, anula al atributo novalidate del elemento form. Esto permite a los autores proveer un formulario con dos o más botones que lleven a cabo diferentes tipos de envíos.

Este atributo es parte de la API de validación de restricciones, una nueva característica que permite a los autores proveer validación de campos en los formularios con mínima intervención de la programación.

Ejemplo

<form action="../../form-result.php" target="_blank">
  <p>
    Usuario: <input type="text" name="usuario" pattern="^[a-zA-Z][a-zA-Z0-9-_\.]{3,15}$" title="Un nombre de usuario apropiado debe comenzar con una letra, contener letras, números, guiones bajos y puntos, y tener entre 3 y 15 caracteres de longitud" required>
    <input type="submit" value="Enviar">
    <input type="submit" value="Enviar sin validar" formnovalidate>
  </p>
</form>

Usuario:

name

Un nombre para el control. Este nombre será enviado por el navegador al agente procesador, emparejado con el contenido del atributo value. Ambos atributos juntos conformarán un par nombre-valor que será utilizado para procesar la información del formulario.

Actualmente, el valor isindex, antiguamente utilizado de manera especial por algunos navegadores e incluido en el estándar HTML, no está permitido en este atributo.

El par nombre-valor de un botón es enviado, con el resto de los datos en el formulario, sólo si el botón ha sido utilizado para enviar el formulario.

Ejemplo

<form action="../../form-result.php" method="post" target="_blank">
  <p>
    Nombre del socio: <input type="text" name="nombresocio">
    <input type="submit" name="botondeenvio" value="Enviar">
  </p>
</form>

Nombre del socio:

type

Un valor que indica el tipo de campo que representa este elemento. Existen veintidós valores posibles (insensibles a mayúsculas/minúsculas):

  • hidden: un control oculto utilizado para enviar información al servidor, típicamente manejado por programas.
  • text: un control usado para la entrada de una sola línea de texto.
  • search: igaul a text pero con fines de búsqueda.
  • tel: un control usado para proveer un número de teléfono.
  • url: una caja de texto usada para el ingreso de un único URL absoluto.
  • email: un control diseñado para editar una o más direcciones de e-mail.
  • password: una caja de texto para la edición de contraseñas, donde los caracteres son representados por puntos.
  • date: un control para ingresar una fecha específica.
  • month: un control para ingresar un mes específico.
  • week: un control para ingresar una semana específica.
  • time: un control para ingresar una hora específica.
  • datetime-local: un control para ingresar una fecha y hora local específica.
  • number: un control para ingresar un número.
  • range: un control para ingresar uno o dos números dentro de un rango.
  • color: un control para ingresar un color.
  • checkbox: un control para ingresar un valor booleano (verdadero/falso).
  • radio: un control para elegir una única opción entre varias.
  • file: un control usado para subir archivos al servidor.
  • submit: un botón usado para enviar el formulario.
  • image: igual a submit pero con la habilidad de verse como una imagen en lugar de usar la apariencia predeterminada de los botones.
  • reset: un botón usado para reiniciar los controles del formulario a sus valores iniciales.
  • button: un botón sin una acción predeterminada asociada.

Cuando este atributo está ausente, el elemento se comporta como si tuviera el valor "text".

Ejemplo

<input type="submit" value="Enviar datos">

value

Un valor para el control. Este valor será enviado por el navegador al agente procesador, emparejado con el contenido del atributo name. Ambos atributos juntos conformarán un par nombre-valor que será utilizado para procesar la información del formulario.

Adicionalmente, los navegadores usarán el contenido de este atributo como etiqueta para el botón.

El par nombre-valor de un botón es enviado, con el resto de los datos en el formulario, sólo si el botón ha sido utilizado para enviar el formulario.

Los agentes procesadores encontrarán escasa utilidad en el par nombre-valor pasado por un botón. En cambio, el atirbuto value tiene una tarea más importante al proveer la etiqueta que los navegadores mostrarán como contenido del botón.

Ejemplo

<form action="../../form-result.php" method="post" target="_blank">
  <p>
    Buscar: <input type="search" name="cadenabusqueda" value="Otoño"></p>
    <input type="submit" name="botondeenvio" value="Buscar">
  </p>
</form>

Buscar:

Atributos globales

Para más información acerca de los atributos globales refiérete a esta lista de atributos gloables en HTML5.

Eventos

Eventos globales

Para más información acerca de los eventos globales refiérete a esta lista de eventos globales en HTML5.