Formularios Pro y Validación Nativa

Aprovecha la validación nativa y los controles avanzados de HTML5.

HTML5 valida formatos y obliga requisitos sin JavaScript.

Los tipos de input y atributos como pattern o autocomplete mejoran la UX.

Combina datalist para sugerencias sin bloquear la escritura.

fieldset y legend agrupan campos relacionados para mejor semántica.

  • Resumen con ideas principales para repasar rápido.
  • pattern valida formatos con expresiones regulares en el propio HTML.
  • required, minlength y maxlength cubren la mayoría de validaciones básicas.
  • autocomplete ayuda a completar datos frecuentes y reduce fricción.
  • Usa type="email" o type="tel" para teclados adecuados.

Claves teóricas

Resumen con ideas principales para repasar rápido.

Formularios Pro y Validación Nativa

pattern valida formatos con expresiones regulares en el propio HTML.

required, minlength y maxlength cubren la mayoría de validaciones básicas.

autocomplete ayuda a completar datos frecuentes y reduce fricción.

  • Usa type="email" o type="tel" para teclados adecuados.
  • Combina datalist con input para sugerencias flexibles.
  • Agrupa con fieldset y legend para formularios largos.

Controles avanzados: select, optgroup, textarea y output

No todo es input. Estos controles mejoran UX en formularios reales.

select es ideal cuando el conjunto de opciones es cerrado. optgroup ayuda a agruparlas con sentido y reduce errores de elección.

textarea cubre entradas largas como comentarios o descripciones. output sirve para mostrar resultados derivados, por ejemplo un cálculo de presupuesto.

  • Si la respuesta es libre, evita select y usa input o textarea.
  • Añade labels claros para todos los controles.
  • En output, explica siempre qué representa el valor.

Ejemplo: El Formulario Zero-JS

Este formulario valida una matrícula de coche (4 números y 3 letras) y ofrece sugerencias de marcas sin una sola línea de código script.

HTML
13

Formularios Pro y Validación Nativa

Aprovecha la validación nativa y los controles avanzados de HTML5.

Código del tema: <form> | <input> | <select>

📘 Teoría

Claves teóricas

Resumen con ideas principales para repasar rápido.

1

pattern

Valida con regex sin JS.

2

required

Evita envíos vacíos.

3

min/max/step

Controla rangos y saltos en números.

4

autocomplete

Mejora la UX con autocompletado.

5

datalist

Sugiere valores sin bloquear la escritura.

6

fieldset + legend

Agrupa campos relacionados.

Formularios Pro y Validación Nativa

pattern valida formatos con expresiones regulares en el propio HTML.

required, minlength y maxlength cubren la mayoría de validaciones básicas.

autocomplete ayuda a completar datos frecuentes y reduce fricción.

  • Usa type="email" o type="tel" para teclados adecuados.
  • Combina datalist con input para sugerencias flexibles.
  • Agrupa con fieldset y legend para formularios largos.

Controles avanzados: select, optgroup, textarea y output

No todo es input. Estos controles mejoran UX en formularios reales.

select es ideal cuando el conjunto de opciones es cerrado. optgroup ayuda a agruparlas con sentido y reduce errores de elección.

textarea cubre entradas largas como comentarios o descripciones. output sirve para mostrar resultados derivados, por ejemplo un cálculo de presupuesto.

  • Si la respuesta es libre, evita select y usa input o textarea.
  • Añade labels claros para todos los controles.
  • En output, explica siempre qué representa el valor.
1

select + option

Opciones cerradas y controladas.

2

optgroup

Agrupa opciones por categoría.

3

textarea

Texto largo con contexto.

4

output

Resultado visible de una operación.

Formulario con controles avanzados
<form oninput="total.value = Number(horas.value || 0) * 25">
  <label for="servicio">Servicio</label>
  <select id="servicio" name="servicio" required>
    <optgroup label="Frontend">
      <option value="landing">Landing</option>
      <option value="ui">UI components</option>
    </optgroup>
    <optgroup label="Backend">
      <option value="api">API</option>
      <option value="auth">Auth</option>
    </optgroup>
  </select>

  <label for="comentarios">Comentarios</label>
  <textarea id="comentarios" name="comentarios" rows="4" placeholder="Cuéntanos el contexto..."></textarea>

  <label for="horas">Horas estimadas</label>
  <input id="horas" name="horas" type="number" min="0" step="1" value="1" />

  <p>Total estimado: <output name="total">25</output> EUR</p>
</form>

Ejemplo: El Formulario Zero-JS

Este formulario valida una matrícula de coche (4 números y 3 letras) y ofrece sugerencias de marcas sin una sola línea de código script.

Checklist rápida
- Usa <input type="text"> + pattern para validar formato.
- Añade required y title para mensajes claros.
- Combina datalist para sugerencias sin bloquear.

🧪 Aprende probando

Ejemplo Formulario Zero-JS Valida matrícula y sugiere marcas sin JavaScript.
Ejemplo Demo interactiva: required, pattern, min/max y estados de validez Comprueba cómo el navegador valida cada campo y cómo se reflejan `:valid` y `:invalid` en la interfaz.

🏁 Retos

Reto Reto: password seguro Añade pattern para al menos un número y 8 caracteres.

🧰 Recursos

Test

Comprueba tus conocimientos con un test sobre HTML.

Test de HTML
CodePen: Form Validation with HTML5 and JavaScript
Abrir en CodePen

¿Qué es esto?

Soy Cristian Eslava y a veces hago webs para procrastinar yo y vosotros 😉.

Esta la hice en febrero de 2026 para facilitar el aprendizaje de mis alumnxs. Aprender desarrollo web practicando. La idea es que crezca semanalmente con nuevos temas, tests y retos.

Inspirado en MDN, en W3Schools, en Codepen, en el crack de Manz y en mil sitios de documentación sobre desarrollo web. Quería aportar además de bloques teóricos con ejemplos, la gamificación de los retos y el sistema de test que ya tenía en culTest .

Si te gustó, si no te gustó, si quieres saludarme, o invitarme a 🍻 no dudes en escribirme en cristianeslava@gmail.com .