--- title: slug: Web/HTML/Element/select tags: - Elemento - Formulario(2) - HTML - Referencia - Web - formularios html(2) translation_of: Web/HTML/Element/select original_slug: Web/HTML/Elemento/select --- Resumen El elemento select (<select>) de HTML representa un control que muestra un menú de opciones. Las opciones contenidas en el menú son representadas por elementos {{HTMLElement("option")}}, los cuales pueden ser agrupados por elementos {{HTMLElement("optgroup")}}. La opcion puede estar preseleccionada por el usuario. Contenido Content categories Elementos flow content, phrasing content, interactive content, listed, labelable, resettable, y submittable form-associated. Contenido permitido Uno o mas elementos {{HTMLElement("option")}} o {{HTMLElement("optgroup")}}. Omisión de etiquetas Ninguna, ambas etiquetas son obligatorias Elementos padre permitidos Cualquier elemento que permita phrasing content. Atributos Este elemento incluye global attributes. {{htmlattrdef("autofocus")}} {{HTMLVersionInline("5")}} Este atributo permite especificar un formulario de control que debería tener enfoque de entrada cuando se carga la página, a no ser que el usuario lo sobreescriba, por ejemplo, escribiendo un control diferente. Solo un elemento formulario puede tener el elemento de enfoque de entrada por documento, por lo cual es un atributo booleano. {{htmlattrdef("disabled")}} El atributo booleano especifica que el usuario no puede interactuar con el control. Si este atributo no está especificado, el control hereda los ajustes del campo que lo contiene, por ejemplo del fielset; si no hay elemento contenido con el atributo disabled, entonces el control se considera enable (activado). {{htmlattrdef("form")}} {{HTMLVersionInline("5")}} El elemento formulario al cual el select está asociado (su propietario del formulario). Si este atributo está especificado, su valor deberá ser el ID de un formulario en el mismo documento. Esto te permite situar elementos en cualquier parte del documento, no solo de manera descendiente con respecto a su elemento formulario. {{htmlattrdef("multiple")}} Este elemento booleano indica que se pueden seleccionar múltiples opciones de la lista. Si no está especificado, solo se podrá seleccionar una opción cada vez. {{htmlattrdef("name")}} El nombre del elemento de control. {{htmlattrdef("required")}} {{HTMLVersionInline("5")}} Es un elemento boooleano que indica si la opcion puede quedar sin seleccionar o si es requerida. {{htmlattrdef("size")}} Si el control se presenta como una lista con scroll en caja, este atributo representa el numero de filas que la list tendrá visible la primera vez. Los navegadores no están requeridos a presentar un elemento select como una lista con escroll en caja. El valor por defecto es cero. Nota de Firefox: De acuerdo con las especificaciones de HTML5, el tamaño por defecto debe ser 1; sin embargo, en la práctica, esto hace que se rompan algunas páginas webs, y ningun otro navegador actualmente hace esto, así que Mozilla ha optado por continuar usando 0 desde que empezó con Firefox. DOM Interface Este elemento implementa la interfaz HTMLSelectElement. Ejemplos <!-- The second value will be selected initially --> <select name="select"> <option value="value1">Value 1</option> <option value="value2" selected>Value 2</option> <option value="value3">Value 3</option> </select> Resultado Value 1Value 2Value 3 Notas El contenido de este elemento es estático y no editable. El siguiente ejemplo muestra como simular una lista con opciones editables, pero ten cuidado ya que algunos lectores de pantallas y dispositivos de ayuda no lo interpretarán de forma correcta; este ejemplo sería html inválido si usas los elementos correctos: This is an example de un select editable mediante un {{HTMLElement("fieldset")}} de radioboxes y textboxes (escrito en CSS puro, sin JavaScript), Especificaciones Especificación Estado Comentario {{SpecName('HTML5 W3C', 'forms.html#the-select-element', '<select>')}} {{Spec2('HTML5 W3C')}} {{SpecName('HTML4.01', 'interact/forms.html#h-17.6', '<select>')}} {{Spec2('HTML4.01')}} Compatibilidad con Navegadores {{CompatibilityTable}} Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari Basic support 1.0 {{CompatGeckoDesktop("1.0")}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} required attribute {{CompatVersionUnknown}} {{CompatGeckoDesktop("2.0")}} 10 {{CompatVersionUnknown}} {{CompatVersionUnknown}} Feature Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile Basic support {{CompatVersionUnknown}} [1] {{CompatGeckoMobile("1.0")}} [2] {{CompatVersionUnknown}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} required attribute {{CompatVersionUnknown}} {{CompatGeckoDesktop("2.0")}} {{CompatNo}} {{CompatVersionUnknown}} {{CompatVersionUnknown}} [1] En la aplicación navegador para Android 4.1 (y posiblemente en versiones posteriores), hay un error cuando el menu triangulo indicador al lado de un elemento {{HTMLElement("select")}} no se muestra si {{ cssxref("background") }}, {{ cssxref("border") }}, o {{ cssxref("border-radius") }} estilos están aplicados al {{HTMLElement("select")}}. [2] Firefox para Android, por defecto, establece un {{ cssxref("background-image") }} gradiente en todos los elementos <select multiple>. Esto puede desactivarse usando background-image: none. [3] Históricamente, Firefox ha permitido eventos de teclado y ratón para mostrar desde el elemento <option> al elemento padre {{HTMLElement("select")}}. Esto no ocurre en Chrome, sin embargo, aunque este comportamiento sigue apareciendo de manera incosciente en muchos navegadores. Para una mayor compatibilidad Web (y por razones técnicas), cuando Firefox está en modo multitarea el elemento <select> se muestra como una lista descendente. Este comportamiento se produce sin cambios si <select>se presenta como elemento en línea y tiene multipleas atributos definidos o tiene un atributo de tamaño cuyo valor sea mayor que uno. Mejor que ver el elemento <option> para eventos, debería mirar el elemento de enventos {event("change")}} en {{HTMLElement("select")}}. Ver {{bug(1090602)}} para detalles. Tanto Chrome como Safari ignoran {{cssxref("border-radius")}} en los elementos {{HTMLElement("select")}} a no ser que {{cssxref("-webkit-appearance")}} esté invalidado a un valor apropiado. Ver también Otros elementos relacionados de formularios: {{HTMLElement("form")}}, {{HTMLElement("legend")}}, {{HTMLElement("label")}}, {{HTMLElement("button")}}, {{HTMLElement("option")}}, {{HTMLElement("datalist")}}, {{HTMLElement("optgroup")}}, {{HTMLElement("fieldset")}}, {{HTMLElement("textarea")}}, {{HTMLElement("keygen")}}, {{HTMLElement("input")}}, {{HTMLElement("output")}}, {{HTMLElement("progress")}} and {{HTMLElement("meter")}}. {{HTMLRef}}
El elemento select (<select>) de HTML representa un control que muestra un menú de opciones. Las opciones contenidas en el menú son representadas por elementos {{HTMLElement("option")}}, los cuales pueden ser agrupados por elementos {{HTMLElement("optgroup")}}. La opcion puede estar preseleccionada por el usuario.
<select>
Este elemento incluye global attributes.
Este elemento implementa la interfaz HTMLSelectElement.
HTMLSelectElement.
<!-- The second value will be selected initially --> <select name="select"> <option value="value1">Value 1</option> <option value="value2" selected>Value 2</option> <option value="value3">Value 3</option> </select>
Value 1Value 2Value 3
El contenido de este elemento es estático y no editable.
El siguiente ejemplo muestra como simular una lista con opciones editables, pero ten cuidado ya que algunos lectores de pantallas y dispositivos de ayuda no lo interpretarán de forma correcta; este ejemplo sería html inválido si usas los elementos correctos:
This is an example de un select editable mediante un {{HTMLElement("fieldset")}} de radioboxes y textboxes (escrito en CSS puro, sin JavaScript),
required
[1] En la aplicación navegador para Android 4.1 (y posiblemente en versiones posteriores), hay un error cuando el menu triangulo indicador al lado de un elemento {{HTMLElement("select")}} no se muestra si {{ cssxref("background") }}, {{ cssxref("border") }}, o {{ cssxref("border-radius") }} estilos están aplicados al {{HTMLElement("select")}}.
[2] Firefox para Android, por defecto, establece un {{ cssxref("background-image") }} gradiente en todos los elementos <select multiple>. Esto puede desactivarse usando background-image: none.
<select multiple>
background-image: none
[3] Históricamente, Firefox ha permitido eventos de teclado y ratón para mostrar desde el elemento <option> al elemento padre {{HTMLElement("select")}}. Esto no ocurre en Chrome, sin embargo, aunque este comportamiento sigue apareciendo de manera incosciente en muchos navegadores. Para una mayor compatibilidad Web (y por razones técnicas), cuando Firefox está en modo multitarea el elemento <select> se muestra como una lista descendente. Este comportamiento se produce sin cambios si <select>se presenta como elemento en línea y tiene multipleas atributos definidos o tiene un atributo de tamaño cuyo valor sea mayor que uno. Mejor que ver el elemento <option> para eventos, debería mirar el elemento de enventos {event("change")}} en {{HTMLElement("select")}}. Ver {{bug(1090602)}} para detalles.
<option> al elemento padre
<option>
Tanto Chrome como Safari ignoran {{cssxref("border-radius")}} en los elementos {{HTMLElement("select")}} a no ser que {{cssxref("-webkit-appearance")}} esté invalidado a un valor apropiado.