References

Beginner-friendly references for web development, with live, editable examples.

The HTML <option> tag

Element All modern browsers Updated
Quick answer

The HTML <option> element defines a single choice inside a <select>, <optgroup> or <datalist>. Its value is submitted; add selected to pre-select it.

Overview

The <option> element defines a single choice within a <select>, an <optgroup>, or a <datalist>. The text between its tags is what the user sees in the menu.

The value attribute is what actually gets submitted with the form when that option is chosen, and if you omit it, the option's visible text is submitted instead. So set a value whenever the submitted data should differ from the displayed label (for example a country code versus the country name).

Pre-select a choice with the selected attribute, and mark an unavailable choice with disabled so it shows but cannot be picked. The label attribute can supply a shorter display string when needed.

Syntax

<option value="uk" selected>United Kingdom</option>

Attributes

The <option> element supports the following attributes, in addition to the global attributes available to every HTML element.

Attribute Value Description
disabled A boolean attribute: present or absent. Disables a form control.
label A string of label text. Labels an option group or option.
selected A boolean attribute: present or absent. Pre-selects a dropdown option.
value A string or number, depending on the element and input type. Sets a control's value.

Example

Live example
<select>
  <option value="" disabled selected>Choose a size…</option>
  <option>Small</option>
  <option>Medium</option>
  <option>Large</option>
</select>

Best practices

  • Give each <option> a value when the submitted data differs from the visible text.
  • Pre-select the default choice with the selected attribute.
  • Use disabled to show but block an unavailable choice.
  • A disabled, selected first option with empty value makes a useful "Please choose…" placeholder.

Frequently asked questions

What is the difference between an option's text and its value?
The text between the tags is shown to the user; the value attribute is submitted with the form. If there is no value, the text is submitted.
How do I pre-select an option?
Add the selected attribute to that <option>.
How do I disable an option?
Add the disabled attribute; the option appears in the list but cannot be chosen.
Where can the option element be used?
Inside a <select>, an <optgroup>, or a <datalist>.