CodeForge

Maquetación Web Dinámica / HTML5 desde cero: el esqueleto

Formularios I: inputs, labels y required

Teoría20 min20 XP

Cada login, cada búsqueda, cada compra en internet pasa por un formulario. Hoy aprendes las piezas básicas — y la regla que el 80% de la web hace mal: todo input necesita su label.

form, input y el atributo type

formulario.html
<form>
<label for="nombre">Tu nombre</label>
<input type="text" id="nombre" name="nombre" required>

<label for="correo">Tu correo</label>
<input type="email" id="correo" name="correo" required>

<label for="edad">Tu edad</label>
<input type="number" id="edad" name="edad" min="13" max="120">

<button type="submit">Enviar</button>
</form>

El atributo type cambia el comportamiento completo del input: email valida que haya un @ y en el celular abre el teclado con @, number solo acepta dígitos y muestra teclado numérico, date despliega un calendario, password oculta lo escrito. Mismo elemento, superpoderes distintos.

La pareja inseparable: label + input

Cada <label> se conecta a su input con for="id-del-input". Esto logra dos cosas que un texto suelto no puede:

  1. Hacer clic en el label enfoca el input (área de clic gigante — clave en móvil).
  2. El lector de pantalla anuncia "Tu correo, campo de texto" al llegar al input.

¿Y el placeholder?

El placeholder es el texto gris DENTRO del input (una sugerencia de formato, como "ejemplo@correo.com"). Jamás reemplaza al label, por una razón brutal: desaparece cuando el usuario empieza a escribir. Si el usuario se distrae a mitad del formulario, ya no sabe qué le preguntaba cada campo.

Presiona el botón sin llenar nada: el navegador bloquea el envío y señala el primer campo requerido. Eso es required trabajando — validación sin una línea de JavaScript.

¿Por qué el placeholder no puede reemplazar al label?

Mini-reto

Construye un formulario de registro con: nombre (text), correo (email), fecha de nacimiento (date) y contraseña (password) — cada uno con su label conectado y los cuatro required. Pruébalo enviando vacío y con un correo sin @.

Qué sigue

Formularios II: los campos de selección (select, textarea, radio, checkbox), cómo agruparlos con fieldset y los atributos de validación más finos.