CodeForge

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

Formularios II: select, textarea, fieldset y validación nativa

Teoría20 min20 XP

Ya dominas los inputs de una línea. Hoy completas el arsenal: opciones múltiples, texto largo, grupos de campos y los atributos que convierten al navegador en tu primer validador. Al final podrás construir cualquier formulario que te pidan.

Elegir de una lista: select y radio

opciones.html
<label for="pais">País</label>
<select id="pais" name="pais">
<option value="">— Elige —</option>
<option value="co">Colombia</option>
<option value="mx">México</option>
<option value="ar">Argentina</option>
</select>

<fieldset>
<legend>Plan</legend>
<label><input type="radio" name="plan" value="gratis" checked> Gratis</label>
<label><input type="radio" name="plan" value="pro"> Pro</label>
</fieldset>

¿Cuándo cuál? select para listas largas (países); radio para 2-5 opciones visibles de un vistazo (planes, sí/no). Los radio del mismo grupo comparten el name — así el navegador sabe que elegir uno deselecciona el otro.

checkbox y textarea

checkbox-textarea.html
<!-- checkbox: cada uno es independiente (varios pueden marcarse) -->
<label><input type="checkbox" name="temas" value="css"> CSS</label>
<label><input type="checkbox" name="temas" value="js"> JavaScript</label>

<!-- textarea: texto de varias líneas (nota: NO se autocierra) -->
<label for="mensaje">Tu mensaje</label>
<textarea id="mensaje" name="mensaje" rows="4" minlength="20"></textarea>

Validación nativa: el navegador de tu lado

Además del required que ya conoces:

AtributoQué valida
minlength / maxlengthLargo mínimo/máximo del texto
min / maxRango en numbers y dates
patternUna expresión regular (p. ej. un código postal)
autocompleteNo valida: le dice al navegador qué autollenar (email, name, tel)

autocomplete merece respeto: bien usado, el navegador llena el formulario por el usuario en un toque. Mal usado (o ausente), obligas a teclear todo en un celular. Detalle pequeño, conversión gigante.

Escribe menos de 20 caracteres en el mensaje y envía: el navegador te frena y explica cuántos faltan. Gratis.

Necesitas que el usuario elija SU plan (solo uno) entre 3 opciones visibles. ¿Qué usas?

Mini-reto

Amplía tu formulario de registro de la lección pasada: agrega un select de país, un grupo de radios "¿Cómo nos conociste?" (3 opciones, con fieldset) y un textarea de comentarios con minlength="10". Verifica que la validación nativa te frene cuando toca.

Qué sigue

Sales del texto plano: la próxima lección es multimedia — video, audio y las imágenes responsivas con picture y srcset.