El Atributo LIST

El atributo list en HTML se utiliza para vincular un campo de entrada INPUT con un DATALIST, proporcionando sugerencias de autocompletado al usuario.
El atributo list
en HTML se utiliza para vincular un campo de entrada (<input>
) con un <datalist>
, proporcionando sugerencias de autocompletado al usuario. Este atributo es ideal para formularios donde se desea ofrecer opciones predefinidas pero permitir al usuario ingresar valores personalizados. Aquí un tutorial detallado:
¿Qué es el atributo list
?
-
Propósito: Asocia un
<input>
con un<datalist>
que contiene opciones predefinidas. -
Funcionamiento:
-
El usuario puede seleccionar una opción de la lista o escribir un valor personalizado.
-
Las opciones se filtran automáticamente mientras el usuario escribe.
-
-
Elementos clave:
-
<input>
: Campo de entrada con el atributolist
. -
<datalist>
: Lista de opciones vinculada mediante unid
.
-
Sintaxis Básica
<label for="browser">Elige un navegador:</label> <input type="text" id="browser" name="browser" list="navegadores"> <datalist id="navegadores"> <option value="Chrome"> <option value="Firefox"> <option value="Safari"> <option value="Edge"> </datalist>
Resultado:
-
Al hacer clic en el campo, se muestra un menú desplegable con las opciones definidas.
-
El usuario puede seleccionar una opción o escribir manualmente.
Casos de Uso Prácticos
Ejemplo 1: Búsqueda con sugerencias
<label for="ciudad">Buscar ciudad:</label> <input type="search" id="ciudad" name="ciudad" list="ciudades"> <datalist id="ciudades"> <option value="Madrid"> <option value="Barcelona"> <option value="Ciudad de México"> <option value="Buenos Aires"> </datalist>
Ejemplo 2: Selección de rangos numéricos
<label for="edad">Edad:</label> <input type="number" id="edad" name="edad" list="edades" min="0" max="120"> <datalist id="edades"> <option value="18"> <option value="25"> <option value="30"> <option value="40"> </datalist>
Diferencias entre <datalist>
y <select>
Característica | <datalist> |
<select> |
---|---|---|
Entrada personalizada | Permite valores fuera de la lista. | Solo permite valores de la lista. |
Interfaz | Muestra sugerencias mientras se escribe. | Muestra todas las opciones al abrir. |
Uso recomendado | Búsquedas, campos con opciones comunes. | Selección restringida a opciones fijas. |
Buenas Prácticas
Usa label
para accesibilidad:
Vincula el texto descriptivo con el <input>
.
Proporciona opciones relevantes:
Las opciones deben ser comunes pero no limitantes.
Combina con validación:
Aunque el usuario puede escribir cualquier valor, valida los datos en el servidor.
Tipos de entrada compatibles:
text
, search
, url
, tel
, email
, number
, range
, date
, etc.
Ejemplo Avanzado: Datalist con imágenes (usando CSS/JS)
Aunque <datalist>
no soporta estilos personalizados, puedes simular una lista enriquecida con JavaScript:
<input type="text" id="fruta" list="frutas" placeholder="Buscar fruta"> <datalist id="frutas"> <option value="Manzana ????"> <option value="Plátano ????"> <option value="Uva ????"> </datalist>
Nota: Los emojis son texto, pero para imágenes reales, necesitarías una librería como jQuery UI Autocomplete.
Compatibilidad en Navegadores
-
Soportado en: Chrome, Firefox, Edge, Safari (versiones modernas).
-
No soportado en: Internet Explorer (requiere polyfills).
Errores Comunes
Error 1: ID no coincidente
<!-- Incorrecto --> <input list="opciones"> <datalist id="lista-opciones">...</datalist> <!-- ID no coincide -->
Error 2: Olvidar el <datalist>
<!-- Incorrecto: Falta el datalist --> <input list="navegadores">
Conclusión
El atributo list
mejora la usabilidad de formularios al ofrecer sugerencias dinámicas y mantener la flexibilidad de entrada manual. Es ideal para campos de búsqueda, selección de opciones comunes o rangos predefinidos. ¡Inclúyelo en tus proyectos para una experiencia de usuario más intuitiva!