Textarea en HTML
Antes, form="id" y form* resolvían propiedad y enrutado de envío. Textarea es otro trabajo: control de texto multilínea para comentarios y notas. Un input de una línea no sirve bien para párrafos. Usa textarea cuando el usuario necesita más de una línea.
Por qué existe textarea
Contacto, tickets, bios y reseñas necesitan altura con scroll. Textarea envía ese texto como un solo campo con name. Siguen haciendo falta label, name e indicios de tamaño — pero el contenido va entre las etiquetas, no como value de input.
Respuesta directa
1) Escribe textarea con id, name y rows. 2) Conecta un label con for. 3) Texto por defecto entre etiquetas — no value. 4) Opcional: placeholder, maxlength, readonly, disabled, required, wrap. 5) Entrada multilínea — no la asociación form= anterior.
📊 Textarea attributes beginners use
| Attribute | Role | Beginner tip |
|---|---|---|
| name | Submit key | Required if the text should post with the form |
| id | Label hook | Match label for= for accessible naming |
| rows | Visible height hint | Lines of height before scrolling |
| cols | Visible width hint | Prefer CSS width for responsive layouts |
| placeholder | Soft hint | Disappears when the user types |
| maxlength | Character cap | Browser-enforced upper bound |
| readonly / disabled | Lock vs mute | readonly still submits; disabled usually does not |
| wrap | Soft/hard wrap | Affects how line breaks are submitted (soft vs hard) |
Formulario de feedback: caja de mensaje
Un feedback corto deja el email como input de una línea y el mensaje como textarea. El texto inicial va entre las etiquetas.
<form action="/feedback" method="post">
<label for="email">Email</label>
<input id="email" name="email" type="email" required>
<label for="msg">Message</label>
<textarea id="msg" name="msg" rows="6" cols="40"
placeholder="What went well? What can improve?">Thanks for reading —</textarea>
<button type="submit">Send feedback</button>
</form>
Leer el demo de feedback
- Multilínea es textarea, no input
- id coincide con label for
- name clavea el párrafo enviado
- rows/cols sugieren tamaño
- Texto por defecto entre etiquetas
- Mantén labels claros
- form= no hace falta — los campos están dentro del form
Tamaño, límites y wrap
Segundo demo: bio con maxlength, wrap=soft y CSS en lugar de cols. readonly en un resumen solo lectura.
<label for="bio">Short bio</label>
<textarea id="bio" name="bio" rows="4" maxlength="280"
wrap="soft"
style="width:100%; max-width:28rem; resize:vertical;"
placeholder="Up to 280 characters"></textarea>
<label for="summary">Auto summary (read-only)</label>
<textarea id="summary" name="summary" rows="3" readonly>Generated preview — edit the bio above.</textarea>
Leer el demo de tamaño
- maxlength limita la longitud
- wrap=soft para saltos visuales sin hard
- CSS width y resize afinan
- readonly se ve pero no se edita
- name sigue siendo necesario para enviar
- Siguiente: select para elegir de una lista
Elegir textarea frente a input
- Una línea corta: input
- Párrafos/mensajes: textarea
- Tamaño con rows y CSS; cols es legado
- Contenido por defecto entre etiquetas — no value
- Siempre label y name
- Anida en form si puedes
- No confundir con formaction/propiedad
Práctica — construir y redimensionar
- Copia el feedback; cambia el texto entre etiquetas
- Baja rows y observa la altura
- Añade maxlength
- Sustituye cols por width CSS
- Prueba value un momento y quítalo
- Frase: textarea entre etiquetas; input con value
- Listas van en select a continuación
Errores fáciles
- Texto por defecto en value en vez de entre etiquetas
- Olvidar name
- Sin label
- input de una línea cuando hacen falta varias
- Confundir con form=/formaction
- Solo cols para ancho responsive
- disabled en lugar de readonly
Resumen
- textarea = texto multilínea
- label y suele name
- Texto por defecto entre etiquetas
- rows/CSS; opcional maxlength, placeholder, readonly
- No son los atributos de asociación del form anterior
- Siguiente: select
🧠 Pon a Prueba tu Conocimiento
Pon a Prueba tu Conocimiento
Ponte a prueba con este cuestionario interactivo y descubre qué tan bien entiendes el tema
📝 Instrucciones
- Lee cada pregunta cuidadosamente
- Selecciona la mejor respuesta para cada pregunta
- Puedes repetir el quiz tantas veces como quieras
- Tu progreso se mostrará en la parte superior