La Etiqueta OPTION

Define elementos seleccionables dentro de listas desplegables o de sugerencias.
La etiqueta <option> define elementos seleccionables dentro de listas desplegables (<select>) o de sugerencias (<datalist>). Es fundamental para crear formularios interactivos, permitiendo a los usuarios elegir entre múltiples opciones predefinidas.
Casos de uso comunes:
-
Menús desplegables (países, categorías).
-
Listas de selección múltiple.
-
Sugerencias de autocompletado.
Sintaxis básica
La etiqueta <option> se usa dentro de <select>, <optgroup>, o <datalist>:
<select> <option>Opción 1</option> <option>Opción 2</option> </select>
Atributos principales
| Atributo | Descripción |
|---|---|
value |
Valor enviado al servidor (si no se incluye, se usa el texto interno). |
selected |
Marca la opción como seleccionada por defecto. |
disabled |
Deshabilita la opción (no se puede seleccionar). |
label |
Texto corto para representar la opción (útil en <optgroup>). |
Ejemplos prácticos
Menú desplegable básico
<label for="ciudades">Elige una ciudad:</label> <select id="ciudades"> <option value="mx">Ciudad de México</option> <option value="ny">Nueva York</option> <option value="par">París</option> </select>
Resultado:
Opción preseleccionada y deshabilitada
<select> <option>Elige un color</option> <option value="rojo" selected>Rojo</option> <!-- Seleccionado por defecto --> <option value="azul">Azul</option> <option value="verde" disabled>Verde</option> <!-- No seleccionable --> </select>
Resultado:
Agrupación con <optgroup>
Organiza opciones en categorías:
<select>
<optgroup label="América">
<option>México</option>
<option>Argentina</option>
</optgroup>
<optgroup label="Europa">
<option>España</option>
<option>Italia</option>
</optgroup>
</select>
Resultado:
Selección múltiple
Permite elegir varias opciones con multiple en <select>:
<select multiple> <option>Manzana</option> <option>Plátano</option> <option>Naranja</option> </select>
Resultado:
Los usuarios pueden seleccionar múltiples frutas manteniendo presionada la tecla Ctrl (Windows) o Cmd (Mac).
Lista de sugerencias (<datalist>)
Crea un campo de entrada con autocompletado:
<label for="lenguajes">Lenguaje de programación:</label> <input list="lenguajes" id="lenguaje"> <datalist id="lenguajes"> <option value="JavaScript"> <option value="Python"> <option value="Java"> </datalist>
Resultado:
El usuario puede escribir o seleccionar una opción de la lista.
Personalización con CSS
Aunque el estilo de <option> es limitado, puedes:
Cambiar el color de fondo de las opciones deshabilitadas:
option:disabled {
background-color: #f0f0f0;
}
Modificar el hover (en navegadores que lo permitan):
option:hover {
background-color: #e0e0e0;
}
Mejores prácticas
Usa value siempre que sea posible: Esto asegura que el servidor reciba datos consistentes (ej: códigos en lugar de textos largos).
Proporciona opciones claras: Evita textos ambiguos como "Seleccione..."; usa <option disabled> para instrucciones:
<select> <option disabled selected>Elige un país</option> <option>México</option> </select>
Agrupa opciones largas con <optgroup>: Mejora la usabilidad en listas extensas.
Errores comunes
Olvidar el atributo value: Sin él, el formulario envía el texto visible, lo que puede causar inconsistencias.
<!-- Incorrecto --> <option>México</option> <!-- Correcto --> <option value="MX">México</option>
Usar <option> fuera de <select> o <datalist>: La etiqueta no funcionará correctamente.
Abusar de las opciones deshabilitadas: Puede confundir al usuario si no hay opciones válidas disponibles.
Conclusión
La etiqueta <option> es esencial para crear formularios interactivos y accesibles. Combinada con <select>, <optgroup>, o <datalist>, permite diseñar desde simples menús hasta listas complejas con agrupaciones y autocompletado.
Ejemplo final:
<select>
<optgroup label="Deportes">
<option value="ft">Fútbol</option>
<option value="bs">Básquetbol</option>
</optgroup>
<optgroup label="Arte">
<option value="ms">Música</option>
<option value="pt">Pintura</option>
</optgroup>
</select>
Con este tutorial, podrás implementar listas de selección eficientes y bien estructuradas en tus proyectos web.