La Etiqueta TEXTAREA

Se utiliza para crear un campo de texto multilínea en formularios HTML. Es ideal para recopilar entradas largas de usuarios.
La etiqueta <textarea>
se utiliza para crear un campo de texto multilínea en formularios HTML. Es ideal para recopilar entradas largas de usuarios, como comentarios, mensajes o descripciones. Aquí te explicamos cómo implementarla correctamente, con ejemplos y buenas prácticas.
Sintaxis básica
La estructura básica incluye los atributos rows
(filas) y cols
(columnas) para definir el tamaño visible inicial:
<textarea rows="4" cols="50" placeholder="Escribe aquí..."></textarea>
-
rows
: Número de filas visibles (altura). -
cols
: Número de columnas visibles (ancho). -
placeholder
: Texto de ejemplo que desaparece al escribir.
Atributos comunes
Atributo | Descripción |
---|---|
name |
Nombre del campo (obligatorio para enviar datos en formularios). |
maxlength |
Máximo de caracteres permitidos (ejemplo: maxlength="200" ). |
required |
Indica que el campo es obligatorio antes de enviar el formulario. |
readonly |
El texto es visible pero no editable. |
disabled |
Desactiva el campo (no se envía con el formulario). |
wrap="soft/hard" |
Controla cómo se envía el texto al servidor (soft no incluye saltos de línea automáticos, hard sí). |
Ejemplo con atributos:
<textarea name="comentario" rows="5" cols="30" placeholder="Escribe tu comentario..." maxlength="500" required ></textarea>
Estilización con CSS
Personaliza el diseño con clases o estilos en línea:
textarea { width: 100%; /* Ancho completo */ padding: 10px; border: 2px solid #007bff; border-radius: 5px; font-family: Arial; resize: vertical; /* Permite redimensionar verticalmente */ } textarea:focus { outline: none; border-color: #0056b3; box-shadow: 0 0 5px rgba(0,123,255,0.5); }
Integración en formularios
Envía el contenido del <textarea>
a un servidor usando <form>
:
<form action="/procesar" method="POST"> <label for="mensaje">Mensaje:</label> <textarea id="mensaje" name="mensaje" rows="4" placeholder="Escribe tu mensaje..." required ></textarea> <button type="submit">Enviar</button> </form>
<label>
: Mejora la accesibilidad vinculando el texto al campo con for="id-del-textarea"
.
Accesibilidad
Vincula <label>
: Siempre usa una etiqueta descriptiva.
Atributos ARIA: Agrega aria-describedby
para instrucciones adicionales:
<textarea id="bio" aria-describedby="ayuda-bio" ></textarea> <p id="ayuda-bio">Máximo 300 caracteres.</p>
Interacción con JavaScript
a) Obtener o modificar el valor:
const textarea = document.getElementById('mensaje'); // Obtener valor console.log(textarea.value); // Establecer valor textarea.value = "Texto inicial...";
b) Validar longitud:
<textarea id="comentario" maxlength="200"></textarea> <p id="contador">Caracteres restantes: 200</p> <script> const textarea = document.getElementById('comentario'); const contador = document.getElementById('contador'); textarea.addEventListener('input', () => { const restantes = 200 - textarea.value.length; contador.textContent = `Caracteres restantes: ${restantes}`; }); </script>
Ejemplos prácticos
a) Formulario de contacto:
<form> <label for="nombre">Nombre:</label> <input type="text" id="nombre" name="nombre" required> <label for="correo">Correo:</label> <input type="email" id="correo" name="correo" required> <label for="mensaje">Mensaje:</label> <textarea id="mensaje" name="mensaje" rows="6" placeholder="Escribe tu mensaje..." required ></textarea> <button type="submit">Enviar</button> </form>
b) Campo con límite de caracteres y estilos:
<textarea id="tweet" maxlength="280" placeholder="¿Qué está pasando?" style="width: 100%; height: 100px; border: 1px solid #ccc; padding: 10px;" ></textarea> <p id="contador-tweet">280 caracteres restantes</p> <script> document.getElementById('tweet').addEventListener('input', function() { const contador = document.getElementById('contador-tweet'); contador.textContent = `${280 - this.value.length} caracteres restantes`; }); </script>
Errores comunes
Olvidar el name
: Sin él, el dato no se envía en el formulario.
Usar value
como atributo: El valor se define entre las etiquetas, no como atributo:
<!-- Incorrecto --> <textarea value="Texto inicial"></textarea> <!-- Correcto --> <textarea>Texto inicial</textarea>
Conclusión
La etiqueta <textarea>
es esencial para:
-
Capturar entradas de texto largas en formularios.
-
Mejorar la experiencia de usuario con campos editables y redimensionables.
-
Mantener accesibilidad y semántica en el código.
Mejores prácticas:
-
Usa
placeholder
para guiar al usuario. -
Limita la longitud con
maxlength
si es necesario. -
Estiliza con CSS para adaptarlo al diseño de tu sitio.
-
Valida el contenido con JavaScript en tiempo real.
¡Ahora puedes integrar <textarea>
en tus formularios para recopilar datos de manera eficiente y profesional!