Curso HTML 8.4 Botones de envío y reseteo (button, input type=’submit’)

Punto 8.4: Botones de envío y reseteo (button, input type=’submit’/’reset’)

En los formularios HTML, el envío y el restablecimiento de datos se gestionan mediante botones especializados. Existen dos formas principales de crear estos controles:

  • <input type='submit'> / <input type='reset'>
  • <button type='submit'> / <button type='reset'> / <button type='button'>

1. <input type=’submit’>

Es la forma más clásica de definir un botón de envío. Al pulsarlo, el formulario se envía según los atributos method y action del <form>.

  • value: texto que aparece en el botón.
  • name: nombre del parámetro que se envía junto al value.
  • formaction: (HTML5) anula el action del <form>.
  • formenctype: (HTML5) tipo de codificación de datos (p.ej. multipart/form-data).
  • formmethod: (HTML5) GET/POST si difiere del method del <form>.
  • formnovalidate: omite la validación de campos required o pattern.
  • formtarget: destino de la respuesta (p.ej. _blank).

2. <button type='submit'>

Con <button> podemos incluir contenido HTML (iconos, imágenes, etiquetas <span>…) dentro del botón. En HTML5, el valor por defecto de type es 'submit' si no se especifica.

  • Puede contener HTML: 🛒 Comprar, <img src='icono.svg'>.
  • Se puede estilizar más fácilmente (clases, pseudoelementos, etc.).
  • Los mismos atributos de formulario (formaction, formmethod, etc.) se aplican.

3. <input type='reset'> y <button type='reset'>

Restablecen los valores de los controles a su estado inicial al cargarse la página. No envían nada al servidor; simplemente limpian los datos del formulario.

4. Ejemplos básicos


<label for='usuario'>Usuario:</label> <input id='usuario' name='usuario' required><br> <label for='clave'>Contraseña:</label> <input id='clave' name='clave' type='password' required><br> <input type='submit' value='Acceder'> <input type='reset' value='Limpiar campos'> </form>


  <label for='email'>Email:</label>
  <input id='email' name='email' type='email' required><br>

  <button type='submit'>
    <img src='icono-enviar.svg' alt='' aria-hidden='true'>
    <span>Enviar Correo</span>
  </button>

  <button type='reset'>Borrar Formulario</button>
</form>
  

5. Atributos de tipo <button>

  • type: 'submit' (envío), 'reset' (limpiar), 'button' (no hace acción por defecto).
  • name y value: al enviar, envían name=value.
  • Los atributos form* de HTML5 funcionan igual que en <input>.

6. Envío con comportamiento personalizado

Podemos usar varios botones de envío en un mismo formulario, cada uno con formaction distinto:


  <label for='dato'>Dato:</label>
  <input id='dato' name='dato'><br>

  <input type='submit' value='Guardar' formaction='/guardar'>
  <input type='submit' value='Enviar por email'
         formaction='/mail' formmethod='post' formenctype='multipart/form-data'
         formtarget='_blank'>
</form>
  

7. Consideraciones de accesibilidad

  • Usar aria-label o alt en imágenes incluidas.
  • Proporcionar texto claro en el botón (value o contenido interno).
  • Evitar botones vacíos o solo con iconos sin descripción.

8. Diferencias clave entre <input> y <button>

Característica <input type='submit'/'reset'> <button>
Contenido Solo texto vía value Contenido HTML arbitrario
Estilización Limitada Completa (pseudoelementos, iconos)
Valor enviado Siempre envía su name=value Envía solo si tiene name y no es type='button'
Default type N/A (se indica siempre) Si no se declara, por defecto “submit” en HTML5

9. Buenas prácticas

  • Especificar siempre type en <button> para evitar comportamientos indeseados.
  • Usar formnovalidate en botones de envío que deban omitir la validación HTML5.
  • Agrupar botones en un contenedor <div class='acciones'> para facilitar estilos y accesibilidad.

Con esto, tienes un panorama completo y profundo sobre cómo usar botones de envío y reseteo en tus formularios HTML, su sintaxis, atributos avanzados de HTML5 y recomendaciones prácticas para garantizar accesibilidad y un comportamiento consistente.


Publicado

en

por

Etiquetas:

Comentarios

Deja una respuesta