Contents
<div class="govuk-form-group govuk-!-margin-bottom-2">
<fieldset class="govuk-fieldset">
<legend class="govuk-fieldset__legend govuk-label govuk-!-font-weight-bold">
Multi-select
</legend>
<div class="govuk-checkboxes govuk-checkboxes--small dpr-multi-select" display-name="Multi-select" data-module="govuk-checkboxes">
<div class="govuk-checkboxes__item">
<input class="govuk-checkboxes__input" id="filters.multiselect" name="filters.multiselect" type="checkbox" value="value1">
<label class="govuk-label govuk-checkboxes__label" for="filters.multiselect">
Value 1
</label>
</div>
<div class="govuk-checkboxes__item">
<input class="govuk-checkboxes__input" id="filters.multiselect-2" name="filters.multiselect" type="checkbox" value="value2" checked>
<label class="govuk-label govuk-checkboxes__label" for="filters.multiselect-2">
Value 2
</label>
</div>
<div class="govuk-checkboxes__item">
<input class="govuk-checkboxes__input" id="filters.multiselect-3" name="filters.multiselect" type="checkbox" value="value3" checked>
<label class="govuk-label govuk-checkboxes__label" for="filters.multiselect-3">
Value 3
</label>
</div>
<div class="govuk-checkboxes__item">
<input class="govuk-checkboxes__input" id="filters.multiselect-4" name="filters.multiselect" type="checkbox" value="value4">
<label class="govuk-label govuk-checkboxes__label" for="filters.multiselect-4">
Value 4
</label>
</div>
</div>
</fieldset>
</div>
</div>
{% from "dpr/components/_inputs/multi-select/view.njk" import dprMultiSelect %}
{{
dprMultiSelect({
text: "Multi-select",
name: "multiselect",
type: "multiselect",
value: "value2,value3",
options: [
{ value: "value1", text: "Value 1" },
{ value: "value2", text: "Value 2" },
{ value: "value3", text: "Value 3" },
{ value: "value4", text: "Value 4" }
],
values: [ "value2", "value3" ]
})
}}```
</div>
</div>
</div>
## Overview
The DPR multiselect component is composite of the [GOV design system checkbox component](https://design-system.service.gov.uk/components/checkboxes/).
### When to use
Use the multiselect component when you need to help users:
- select multiple options from a list
- toggle a single option on or off
### When not to use
Do not use the checkboxes component if users can only choose one option from a selection. In this case, use the Radios component.
## How to use
### Default
<div class="app-example">
<span class="app-example__new-window">
<a href="/examples/inputs/multiselect/default" target="_blank"
>Open this example <span class="govuk-visually-hidden">(Multi-select (example))</span> in a new window</a
>
</span>
<iframe class="app-example__frame" height="300" src="/examples/inputs/multiselect/default" title="Multi-select (example)"></iframe>
</div>
<div class="app-tabs" data-module="app-tabs">
<div class="govuk-tabs" data-module="govuk-tabs">
<h2 class="govuk-tabs__title">
Contents
</h2>
<ul class="govuk-tabs__list">
<li class="govuk-tabs__list-item govuk-tabs__list-item--selected">
<a class="govuk-tabs__tab" href="#blank-tab">
_
</a>
</li>
<li class="govuk-tabs__list-item">
<a class="govuk-tabs__tab" href="#htmldefault1">
HTML
</a>
</li>
<li class="govuk-tabs__list-item">
<a class="govuk-tabs__tab" href="#nunjucksdefault1">
Nunjucks
</a>
</li>
</ul>
<div class="govuk-tabs__panel" id="blank-tab">
</div>
<div class="govuk-tabs__panel govuk-tabs__panel--hidden" id="htmldefault1">
```html <div class="multiselect-container govuk-!-margin-bottom-6" data-dpr-module="multiselect-input" data-filter-id="filters.multiselect">
<div class="govuk-form-group govuk-!-margin-bottom-2">
<fieldset class="govuk-fieldset">
<legend class="govuk-fieldset__legend govuk-label govuk-!-font-weight-bold">
Multi-select
</legend>
<div class="govuk-checkboxes govuk-checkboxes--small dpr-multi-select" display-name="Multi-select" data-module="govuk-checkboxes">
<div class="govuk-checkboxes__item">
<input class="govuk-checkboxes__input" id="filters.multiselect" name="filters.multiselect" type="checkbox" value="value1">
<label class="govuk-label govuk-checkboxes__label" for="filters.multiselect">
Value 1
</label>
</div>
<div class="govuk-checkboxes__item">
<input class="govuk-checkboxes__input" id="filters.multiselect-2" name="filters.multiselect" type="checkbox" value="value2" checked>
<label class="govuk-label govuk-checkboxes__label" for="filters.multiselect-2">
Value 2
</label>
</div>
<div class="govuk-checkboxes__item">
<input class="govuk-checkboxes__input" id="filters.multiselect-3" name="filters.multiselect" type="checkbox" value="value3" checked>
<label class="govuk-label govuk-checkboxes__label" for="filters.multiselect-3">
Value 3
</label>
</div>
<div class="govuk-checkboxes__item">
<input class="govuk-checkboxes__input" id="filters.multiselect-4" name="filters.multiselect" type="checkbox" value="value4">
<label class="govuk-label govuk-checkboxes__label" for="filters.multiselect-4">
Value 4
</label>
</div>
</div>
</fieldset>
</div>
</div>
{% from "dpr/components/_inputs/multi-select/view.njk" import dprMultiSelect %}
{{
dprMultiSelect({
text: "Multi-select",
name: "multiselect",
type: "multiselect",
value: "value2,value3",
options: [
{ value: "value1", text: "Value 1" },
{ value: "value2", text: "Value 2" },
{ value: "value3", text: "Value 3" },
{ value: "value4", text: "Value 4" }
],
values: [ "value2", "value3" ]
})
}}```
</div>
</div>
</div>
### Long list of select options
When a lost list of select options is provided to the component, the multiselect container with show a sub-section of list items and provide a scroll bar to reveal the remaining options
<div class="app-example">
<span class="app-example__new-window">
<a href="/examples/inputs/multiselect/scroll" target="_blank"
>Open this example <span class="govuk-visually-hidden">(Multi-select (example))</span> in a new window</a
>
</span>
<iframe class="app-example__frame" height="400" src="/examples/inputs/multiselect/scroll" title="Multi-select (example)"></iframe>
</div>
<div class="app-tabs" data-module="app-tabs">
<div class="govuk-tabs" data-module="govuk-tabs">
<h2 class="govuk-tabs__title">
Contents
</h2>
<ul class="govuk-tabs__list">
<li class="govuk-tabs__list-item govuk-tabs__list-item--selected">
<a class="govuk-tabs__tab" href="#blank-tab">
_
</a>
</li>
<li class="govuk-tabs__list-item">
<a class="govuk-tabs__tab" href="#htmlscroll">
HTML
</a>
</li>
<li class="govuk-tabs__list-item">
<a class="govuk-tabs__tab" href="#nunjucksscroll">
Nunjucks
</a>
</li>
</ul>
<div class="govuk-tabs__panel" id="blank-tab">
</div>
<div class="govuk-tabs__panel govuk-tabs__panel--hidden" id="htmlscroll">
```html <div class="multiselect-container govuk-!-margin-bottom-6" data-dpr-module="multiselect-input" data-filter-id="filters.multiselect">
<div class="govuk-form-group govuk-!-margin-bottom-2">
<fieldset class="govuk-fieldset">
<legend class="govuk-fieldset__legend govuk-label govuk-!-font-weight-bold">
Multi-select
</legend>
<div class="govuk-checkboxes govuk-checkboxes--small dpr-multi-select dpr-multi-select-scroll" display-name="Multi-select" data-module="govuk-checkboxes">
<div class="govuk-checkboxes__item">
<input class="govuk-checkboxes__input" id="filters.multiselect" name="filters.multiselect" type="checkbox" value="value1">
<label class="govuk-label govuk-checkboxes__label" for="filters.multiselect">
Value 1
</label>
</div>
<div class="govuk-checkboxes__item">
<input class="govuk-checkboxes__input" id="filters.multiselect-2" name="filters.multiselect" type="checkbox" value="value2">
<label class="govuk-label govuk-checkboxes__label" for="filters.multiselect-2">
Value 2
</label>
</div>
<div class="govuk-checkboxes__item">
<input class="govuk-checkboxes__input" id="filters.multiselect-3" name="filters.multiselect" type="checkbox" value="value3" checked>
<label class="govuk-label govuk-checkboxes__label" for="filters.multiselect-3">
Value 3
</label>
</div>
<div class="govuk-checkboxes__item">
<input class="govuk-checkboxes__input" id="filters.multiselect-4" name="filters.multiselect" type="checkbox" value="value4">
<label class="govuk-label govuk-checkboxes__label" for="filters.multiselect-4">
Value 4
</label>
</div>
<div class="govuk-checkboxes__item">
<input class="govuk-checkboxes__input" id="filters.multiselect-5" name="filters.multiselect" type="checkbox" value="value5">
<label class="govuk-label govuk-checkboxes__label" for="filters.multiselect-5">
Value 5
</label>
</div>
<div class="govuk-checkboxes__item">
<input class="govuk-checkboxes__input" id="filters.multiselect-6" name="filters.multiselect" type="checkbox" value="value6">
<label class="govuk-label govuk-checkboxes__label" for="filters.multiselect-6">
Value 6
</label>
</div>
<div class="govuk-checkboxes__item">
<input class="govuk-checkboxes__input" id="filters.multiselect-7" name="filters.multiselect" type="checkbox" value="value7">
<label class="govuk-label govuk-checkboxes__label" for="filters.multiselect-7">
Value 7
</label>
</div>
<div class="govuk-checkboxes__item">
<input class="govuk-checkboxes__input" id="filters.multiselect-8" name="filters.multiselect" type="checkbox" value="value8" checked>
<label class="govuk-label govuk-checkboxes__label" for="filters.multiselect-8">
Value 8
</label>
</div>
<div class="govuk-checkboxes__item">
<input class="govuk-checkboxes__input" id="filters.multiselect-9" name="filters.multiselect" type="checkbox" value="value9">
<label class="govuk-label govuk-checkboxes__label" for="filters.multiselect-9">
Value 9
</label>
</div>
<div class="govuk-checkboxes__item">
<input class="govuk-checkboxes__input" id="filters.multiselect-10" name="filters.multiselect" type="checkbox" value="value10" checked>
<label class="govuk-label govuk-checkboxes__label" for="filters.multiselect-10">
Value 10
</label>
</div>
</div>
</fieldset>
</div>
<a href="#" class="govuk-link govuk-link--no-visited-state govuk-body-s dpr-multiselect-action__view-all">View full list</a>
<a href="#" class="govuk-link govuk-link--no-visited-state govuk-body-s dpr-multiselect-action__hide-all dpr-multiselect-action--hide">Hide full list</a>
</div>