This article needs an editorial review. How you can help.
Our volunteers haven't translated this article into Català yet. Join us and help get the job done!
Summary
The HTML select (<select>
) element represents a control that presents a menu of options. The options within the menu are represented by
elements, which can be grouped by <option>
elements. Options can be pre-selected for the user.<optgroup>
Usage content
Content categories | flow content, phrasing content, interactive content, listed, labelable, resettable, and submittable form-associated element |
Permitted content | Zero or more <option> or <optgroup> elements. |
Tag omission | none, both the start tag and the end tag are mandatory |
Permitted parent elements | any element that accepts phrasing content |
Attributes
This element includes the global attributes.
autofocus
HTML5- This attribute lets you specify that a form control should have input focus when the page loads, unless the user overrides it, for example by typing in a different control. Only one form element in a document can have the
autofocus
attribute, which is a Boolean. disabled
- This Boolean attribute indicates that the user cannot interact with the control. If this attribute is not specified, the control inherits its setting from the containing element, for example
fieldset
; if there is no containing element with thedisabled
attribute set, then the control is enabled. form
HTML5- The form element that the select element is associated with (its "form owner"). If this attribute is specified, its value must be the ID of a form element in the same document. This enables you to place select elements anywhere within a document, not just as descendants of their form elements.
multiple
- This Boolean attribute indicates that multiple options can be selected in the list. If it is not specified, then only one option can be selected at a time.
name
- The name of the control.
required
HTML5- A Boolean attribute indicating that an option with a non-empty string value must be selected.
selected
- Boolean attribute indicates that a specific option can be initially selected.
size
- If the control is presented as a scrolled list box, this attribute represents the number of rows in the list that should be visible at one time. Browsers are not required to present a select element as a scrolled list box. The default value is 0.
DOM Interface
This element implements the HTMLSelectElement
interface.
Examples
<!-- 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>
Result
Notes
The content of this element is static and not editable.
Specifications
Specification | Status | Comments |
---|---|---|
HTML5 The definition of '<select>' in that specification. |
Recommendation | |
HTML 4.01 Specification The definition of '<select>' in that specification. |
Recommendation |
Browser compatibility
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | 1.0 | 1.0 (1.7 or earlier) [3] | (Yes) | (Yes) | (Yes) |
required attribute |
(Yes) | 4.0 (2.0) | 10 | (Yes) | (Yes) |
Feature | Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|
Basic support | (Yes) [1] | 1.0 (1.0) [2] | (Yes) | (Yes) | (Yes) |
required attribute |
(Yes) | 4.0 (2.0) | No support | (Yes) | (Yes) |
[1] In the Browser app for Android 4.1 (and possibly later versions), there is a bug where the menu indicator triangle on the side of a <select>
will not be displayed if a background
, border
, or border-radius
style is applied to the <select>
.
[2] Firefox for Android, by default, sets a background-image
gradient on all <select multiple>
elements. This can be disabled using background-image: none
.
[3] Historically, Firefox has allowed keyboard and mouse events to bubble up from the <option>
element to the parent <select>
element. This doesn't happen in Chrome, however, although this behavior is inconsistent across many browsers. For better Web compatibility (and for technical reasons), when Firefox is in multi-process mode and the <select>
element is displayed as a drop-down list. The behavior is unchanged if the <select>
is presented inline and it has either the multiple
attribute defined or a size
attribute set to more than 1. Rather than watching <option>
elements for events, you should watch for change
events on <select>
. See bug 1090602 for details.
Chrome and Safari both ignore border-radius
on <select>
elements unless -webkit-appearance
is overridden to an appropriate value.
See also
- Other form-related elements:
<form>
,<legend>
,<label>
,<button>
,<option>
,<datalist>
,<optgroup>
,<fieldset>
,<textarea>
,<keygen>
,<input>
,<output>
,<progress>
and<meter>
.