Si el size
de una etiqueta <select>
se cambia dinámicamente desde JavaScript, el primer elemento se selecciona automáticamente si el atributo de size
inicial era 0
o 1
(MSEdge, Win10).
<select id="s" size="1"> <option>a <option>b <option>c </select> <select size="3"> <option>a <option>b <option>c </select> <script> s.size=3; </script>
Me imagino que un size
de 0 o 1 fuerza una selección, pero no puedo ver por qué es así, ya que no lo pedí.
¿Alguien tiene una explicación?
Esto está realmente cubierto en la especificación :
Si se insertan nodos o se eliminan nodos, lo que hace que la lista de opciones gane o pierda uno o más elementos de opción, o si un elemento de opción en la lista de opciones solicita un restablecimiento, entonces, si el atributo múltiple del elemento seleccionado está ausente, el El agente de usuario debe ejecutar el primer conjunto de pasos aplicable de la siguiente lista:
- Si el tamaño de visualización del elemento seleccionado es 1, y ningún elemento de opción en la lista de opciones del elemento seleccionado tiene su selección establecida en verdadero
- Establezca la selección del primer elemento de opción en la lista de opciones en orden de árbol que no está deshabilitado, si lo hay, en verdadero.
- Si dos o más elementos de opción en la lista de opciones del elemento seleccionado tienen su selección establecida en verdadero
- Establezca la selección de todos menos el último elemento de opción con su selección establecida en verdadero en la lista de opciones en orden de árbol en falso.