Select
Bootstrap 5 Select component
Select fields components are used for collecting user provided information from a list of options.
Basic example
Multiselect
Add multiple
attribute to the select element to activate multiple mode.
Select with label
It is possible to add select label by creating element with
.form-label
and .select-label
classes.
Select with placeholder
Use placeholder
option to set placeholder for select input. The placeholder will
be displayed when input is focused and no option is selected.
Disabled select
Add disabled
attribute to the select element to disable select input.
Disabled options
Use disabled
attribute on option element to disable specific option.
Custom content
A custom content container with a class .select-custom-content
will be displayed
at the end of the select dropdown.
Visible options
Use visibleOptions
option to change the number of options that will be displayed
in the select dropdown without scrolling.
Secondary text
Add secondary-text
data attribute to the specific options to display secondary
text.
Search
Set filter
option to true
to enable options filtering.
Select with search inside a modal
Due to a focus trap in modals, it is not possible to focus the outer elements (like select
dropdown). You can use select data-mdb-container
option to resolve this problem.
The data-mdb-container
accepts selector of the element inside of wich select
dropdown will be rendered. In this case, the selector should point to the modal container (the
element with class .modal
). It is important to use a unique selector to assign
select to a specific modal.
Option groups
It is possible to group options by using optgroup
element.
Select with icons
Add icon
data attribute to the specific options to display the option icon.
Validation
Set validation
option to true
to enable component validation. The
validFeedback
and invalidFeedback
options allow to modify the
validation messages.
Set value
The setValue
method allows to programatically set the component selections.
Single selection
Add single value string to the arguments list to correctly select option with corresponding value in single selection mode.
Multi selection
Add array of string values to the arguments list to correctly select option with corresponding value in multi selection mode.
Select with toggle element
If you want to toggle Select via button, you have to add data-mdb-toggle
attribute to this button with
ID
of the Select element.
If you want to support our friends from Tailwind Elements you can also check out the Tailwind select documentation.
Select - API
Usage
Via class
<select class="select">
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
<option value="4">Four</option>
<option value="5">Five</option>
</select>
Via JavaScript
const mySelect = new mdb.Select(document.getElementById('mySelect'), options)
Options
Name | Type | Default | Description |
---|---|---|---|
container
|
String | 'body' |
Container for the select dropdown. Accepts an element selector inside of which select dropdown will be rendered. |
clearButton
|
Boolean | false |
Adds clear button to the select input |
disabled
|
Boolean | false |
Changes select input state to disabled |
displayedLabels
|
Number | 5 |
The maximum number of comma-separated list of options displayed on the Multiselect. If a user selects more options than that value, the X options selected text will be displayed instead. If set to -1, the limit is off. |
filter
|
Boolean | false |
Displays filter input that allow to search for specific option |
filterDebounce
|
Number | 300 |
Adds delay to the options list updates when using filter input. Improves performance of the select with filter. |
formWhite
|
Boolean | false |
Adjust input colors for dark backgrounds. |
invalidFeedback
|
String | Invalid |
The text which is displayed below the Material Select when the validate option is enabled and the select is invalid |
noResultText
|
String | 'No results found' |
The text that will be displayed when no option is found after using select filter |
placeholder
|
String | - |
The text that will be displayed as select input placeholder |
size
|
String | 'default' |
Changes input size. Available options: 'sm', 'lg', 'default'. |
optionsSelectedLabel
|
String | 'options selected' |
The text which is displayed on the Multiselect when there are more than 5 (default) options selected, e.g. 7 options selected |
optionHeight
|
Number | 38 |
Height of the select option. Used to determine dropdown height and number of visible options. |
selectAll
|
Boolean | true |
Displays select all option in multiselect dropdown |
selectAllLabel
|
String | 'Select all' |
Changes label of select all option. |
searchPlaceholder
|
String | 'Search...' |
Changes placeholder of the select search input. |
validation
|
Boolean | false |
Adds required validation to the component. |
validFeedback
|
String | 'Valid' |
The text which is displayed below the Material Select when the validate option is enabled and the select is valid. |
visibleOptions
|
Number | 5 |
The maximum number of options which are visible in the select dropdown without scrolling. |
Methods
Name | Description | Example |
---|---|---|
open |
Manually opens a select |
mySelect.open()
|
close |
Manually closes a select |
mySelect.close()
|
setValue
|
Programatically set component selections. Add single value for default select and array of values for multiselect. |
mySelect.setValue('3')
|
dispose
|
Disposes a select instance |
mySelect.dispose()
|
getInstance
|
Static method which allows you to get the select instance associated to a DOM element. |
Select.getInstance(selectEl)
|
const selectEl = document.getElementById('mySelect')
const select = new mdb.Select(selectEl)
select.open()
Events
Name | Description |
---|---|
open.mdb.select
|
This event fires immediately when the select is opened. |
close.mdb.select
|
This event fires immediately when the select is closed. |
valueChange.mdb.select
|
This event fires immediately when the select value changes. |
optionSelect.mdb.select
|
This event fires immediately when the select option is selected. |
optionDeselect.mdb.select
|
This event fires immediately when the select option is deselected. |
const mySelect = document.getElementById('mySelect')
mySelect.addEventListener('open.mdb.select', (e) => {
// do something...
})
Import
MDB UI KIT also works with module bundlers. Use the following code to import this component:
import { Select } from 'mdb-ui-kit';