La Etiqueta FORM

Permite crear formularios interactivos para recopilar datos de usuarios, como registros, encuestas o búsquedas. Es fundamental para la comunicación entre el cliente y el servidor.
La etiqueta <form>
permite crear formularios interactivos para recopilar datos de usuarios, como registros, encuestas o búsquedas. Es fundamental para la comunicación entre el cliente y el servidor. Aquí aprenderás a usarla correctamente.
Sintaxis básica
<form action="/procesar-datos" method="POST"> <!-- Elementos del formulario --> <input type="text" name="nombre"> <button type="submit">Enviar</button> </form>
-
action
: URL donde se enviarán los datos (ej:/login
,https://api.ejemplo.com
). -
method
: Método HTTP (GET
oPOST
). -
enctype
: Tipo de codificación para datos (obligatorio si se suben archivos:multipart/form-data
).
Atributos principales
Atributo | Descripción |
---|---|
action |
Ruta del servidor que procesará los datos (obligatorio). |
method |
Método de envío (GET muestra datos en la URL, POST los oculta). |
autocomplete |
Habilita/deshabilita autocompletado (on u off ). |
novalidate |
Desactiva la validación HTML5 del navegador. |
Elementos comunes dentro de <form>
Campos de entrada (<input>
)
<!-- Texto --> <input type="text" name="nombre" placeholder="Nombre completo"> <!-- Contraseña --> <input type="password" name="clave" required> <!-- Correo electrónico --> <input type="email" name="correo"> <!-- Número --> <input type="number" name="edad" min="18" max="99"> <!-- Fecha --> <input type="date" name="fecha">
Área de texto (<textarea>
)
<textarea name="comentario" rows="4" cols="50" placeholder="Escribe aquí..."></textarea>
Lista desplegable (<select>
)
<select name="pais"> <option value="mx">México</option> <option value="co">Colombia</option> </select>
Botones
<button type="submit">Enviar</button> <button type="reset">Reiniciar</button>
Accesibilidad y buenas prácticas
Etiquetas <label>
Vincular etiquetas con inputs usando for
e id
:
<label for="nombre">Nombre:</label> <input type="text" id="nombre" name="nombre">
Agrupación <fieldset>
y <legend>
<fieldset> <legend>Datos personales</legend> <input type="text" name="nombre"> <input type="email" name="correo"> </fieldset>
Validación HTML5
Usa atributos para validación en el cliente:
<input type="text" name="usuario" required minlength="4" pattern="[A-Za-z0-9]+" title="Solo letras y números" >
Ejemplo completo
<form action="/registro" method="POST" enctype="multipart/form-data"> <fieldset> <legend>Registro de usuario</legend> <label for="nombre">Nombre:</label> <input type="text" id="nombre" name="nombre" required> <label for="clave">Contraseña:</label> <input type="password" id="clave" name="clave" minlength="8" required> <label for="foto">Foto de perfil:</label> <input type="file" id="foto" name="foto" accept="image/*"> <button type="submit">Registrarse</button> </fieldset> </form>
Errores comunes
-
Olvidar el atributo
name
Los datos no se enviarán si los inputs carecen dename
. -
Usar
GET
para datos sensibles
Los datos enviados conGET
son visibles en la URL (evítalo para contraseñas). -
Ignorar la validación del servidor
La validación HTML5 es útil, pero siempre valida en el servidor por seguridad.
Consejos avanzados
Enviar formularios con JavaScript (AJAX)
document.querySelector('form').addEventListener('submit', async (e) => { e.preventDefault(); // Evita recargar la página const formData = new FormData(e.target); const respuesta = await fetch('/ruta', { method: 'POST', body: formData }); // Procesar respuesta... });
Personalizar estilos con CSS
input[type="text"], select { width: 100%; padding: 0.5rem; margin: 0.5rem 0; border: 1px solid #ddd; }
Conclusión:
La etiqueta <form>
es esencial para crear interacciones dinámicas en la web. Domina su uso para:
-
Recopilar datos de usuarios de manera segura.
-
Mejorar la experiencia con validación en tiempo real.
-
Integrar APIs y servicios backend.
¡Conviértete en un experto en formularios y lleva tus proyectos al siguiente nivel!