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 (GEToPOST). -
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
GETpara datos sensibles
Los datos enviados conGETson 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!