Form elements - Select

Use select to let users choose an option from a long list but only use it as a last resort.

Open this select example in new window
<div class="nhsuk-form-group">
  <label class="nhsuk-label" for="select-1">
    Label text goes here
  <select class="nhsuk-select" id="select-1" name="select-1">
    <option value="1">NHS.UK frontend option 1</option>
    <option value="2" selected>NHS.UK frontend option 2</option>
    <option value="3" disabled>NHS.UK frontend option 3</option>
{% from 'select/macro.njk' import select %}

{{ select({
  "id": "select-1",
  "name": "select-1",
  "label": {
    "text": "Label text goes here"
  "items": [
      "value": 1,
      "text": "NHS.UK frontend option 1"
      "value": 2,
      "text": "NHS.UK frontend option 2",
      "selected": true
      "value": 3,
      "text": "NHS.UK frontend option 3",
      "disabled": true
}) }}

How to use select

The select component allows users to choose an option from a long list. Before using it, try other questions which will allow you to present users with fewer options. Consider using a different solution, such as radios.


Watch a video about how some users struggle with selects: Alice Barlett: Burn your select tags.

Have you tested this component?

If so, please share your research findings and let us know how it has worked for you. This will help us improve it for everyone.

Before you start, you will need a GitHub account. It's an open forum where we collect feedback.

If you have any questions, you can message us on Slack. You will need a Slack account if you do not have one. Or you can contact us by email.

Updated: January 2019