MultiSelect

MultiSelect is used to select multiple items from a collection.

Select Cities
PREVIEW

MultiSelect is used as a controlled component with v-model property along with an options collection. Label and value of an option are defined with the optionLabel and optionValue properties respectively. Default property name for the optionLabel is label and value for the optionValue. If optionValue is omitted and the object has no value property, the object itself becomes the value of an option. Note that, when options are simple primitive values such as a string array, no optionLabel and optionValue would be necessary.

Select Cities
basic-demo

Selected values are displayed as a comma separated list by default, setting display as chip displays them as chips.

Select Cities
chips-demo

Options can be grouped when a nested data structures is provided.

Select Cities
group-demo

Available options and the selected options support customization with option and chip templates respectively. In addition, header, footer and filter sections can be templated as well.

Select Countries
template-demo

MultiSelect provides built-in filtering that is enabled by adding the filter property.

Select Cities
filter-demo

Loading state can be used loading property.

Loading...
loadingstate-demo

VirtualScroller is used to render a long list of options efficiently like 100K records in this demo. The configuration is done with virtualScrollerOptions property, refer to the VirtualScroller for more information about the available options as it is used internally by MultiSelect.

Select Item
virtualscroll-demo

A floating label appears on top of the input field when focused. Visit FloatLabel documentation for more information.

empty
empty
empty
floatlabel-demo

IftaLabel is used to create infield top aligned labels. Visit IftaLabel documentation for more information.

empty
iftalabel-demo

When showClear is enabled, a clear icon is displayed to clear the value.

Select Cities
clearicon-demo

MultiSelect provides small and large sizes as alternatives to the base.

Small
Normal
Large
sizes-demo

The fluid prop makes the component take up the full width of its container when set to true.

Select Cities
fluid-demo

Specify the variant property as filled to display the component with a higher visual emphasis than the default outlined style.

Select Cities
filled-demo

When disabled is present, the element cannot be edited and focused.

Select Cities
disabled-demo

The invalid state is applied using the invalid property to indicate failed validation, which can be integrated with form validation libraries.

Select Cities
Select Cities
invalid-demo

MultiSelect integrates seamlessly with the PrimeVue Forms library.

Select Cities
forms-demo

Screen Reader

Value to describe the component can either be provided with aria-labelledby or aria-label props. The multiselect component has a combobox role in addition to aria-haspopup and aria-expanded attributes. The relation between the combobox and the popup is created with aria-controls attribute that refers to the id of the popup listbox.

The popup listbox uses listbox as the role with aria-multiselectable enabled. Each list item has an option role along with aria-label, aria-selected and aria-disabled attributes.

Checkbox component at the header uses a hidden native checkbox element internally that is only visible to screen readers. Value to read is defined with the selectAll and unselectAll keys of the aria property from the locale API.

If filtering is enabled, the filter input is labelled with filterPlaceholder when defined, otherwise the filter key of the aria property from the locale API is used.

Close button uses close key of the aria property from the locale API as the aria-label by default, this can be overridden with the closeButtonProps.

Closed State Keyboard Support

KeyFunction
tabMoves focus to the multiselect element.
spaceOpens the popup and moves visual focus to the selected option, if there is none then first option receives the focus.
enterOpens the popup and moves visual focus to the selected option, if there is none then first option receives the focus.
down arrowOpens the popup and moves visual focus to the selected option, if there is none then first option receives the focus.
up arrowOpens the popup and moves visual focus to the selected option, if there is none then first option receives the focus.
any printable characterOpens the popup and moves focus to the option whose label starts with the characters being typed, if there is none then first option receives the focus.

Popup Keyboard Support

KeyFunction
tabMoves focus to the next focusable element in the popup, if there is none then first focusable element receives the focus.
shift + tabMoves focus to the previous focusable element in the popup, if there is none then last focusable element receives the focus.
enterToggles the selection state of the focused option, then moves focus to the multiselect element.
spaceToggles the selection state of the focused option, then moves focus to the multiselect element.
escapeCloses the popup, moves focus to the multiselect element.
down arrowMoves focus to the next option, if there is none then visual focus does not change.
up arrowMoves focus to the previous option, if there is none then visual focus does not change.
alt + up arrowSelects the focused option and closes the popup, then moves focus to the multiselect element.
shift + down arrowMoves focus to the next option and toggles the selection state.
shift + up arrowMoves focus to the previous option and toggles the selection state.
shift + spaceSelects the items between the most recently selected option and the focused option.
homeMoves focus to the first option.
endMoves focus to the last option.
control + shift + homeSelects the focused options and all the options up to the first one.
control + shift + endSelects the focused options and all the options down to the last one.
control + aSelects all options.
pageUpJumps visual focus to first option.
pageDownJumps visual focus to last option.
any printable characterMoves focus to the option whose label starts with the characters being typed.

Toggle All Checkbox Keyboard Support

KeyFunction
spaceToggles the checked state.
escapeCloses the popup and moves focus to the multiselect element.

Filter Input Keyboard Support

KeyFunction
down arrowMoves focus to the next option, if there is none then visual focus does not change.
up arrowMoves focus to the previous option, if there is none then visual focus does not change.
left arrowRemoves the visual focus from the current option and moves input cursor to one character left.
right arrowRemoves the visual focus from the current option and moves input cursor to one character right.
homeMoves input cursor at the end, if not then moves focus to the first option.
endMoves input cursor at the beginning, if not then moves focus to the last option.
enterCloses the popup and moves focus to the multiselect element.
escapeCloses the popup and moves focus to the multiselect element.
tabMoves focus to the next focusable element in the popup. If there is none, the focusable option is selected and the overlay is closed then moves focus to next element in page.
Theme Designer