SelectВыпадающий список
Компонент выпадающего списка предоставляет множество опций в выпадающем меню для удобного выбора пользователем.
На этой странице описывается использование компонента <mdui-select>. Об использовании пунктов выпадающего меню см. <mdui-menu-item>.
Использование
При необходимости импортируйте компоненты:
import 'mdui/components/select.js';
import 'mdui/components/menu-item.js';
При необходимости импортируйте типы TypeScript:
import type { Select } from 'mdui/components/select.js';
import type { MenuItem } from 'mdui/components/menu-item.js';
Пример использования:
<mdui-select value="item-1">
<mdui-menu-item value="item-1">Item 1</mdui-menu-item>
<mdui-menu-item value="item-2">Item 2</mdui-menu-item>
</mdui-select>Поддержка множественного выбора
По умолчанию выпадающий список поддерживает одиночный выбор, и значением value компонента <mdui-select> является значение value выбранного <mdui-menu-item>.
Добавьте атрибут multiple, чтобы включить поддержку множественного выбора. В этом случае значением value компонента <mdui-select> будет массив значений value выбранных <mdui-menu-item>.
Обратите внимание: в режиме множественного выбора value является массивом, который можно читать и устанавливать только через JavaScript-свойство.
Вспомогательный текст
Используйте атрибут label для задания текста метки над выпадающим списком.
Используйте атрибут placeholder для задания текста-заполнителя, когда значение не выбрано.
Используйте атрибут helper для задания вспомогательного текста внизу выпадающего списка. Также можно использовать слот helper.
Режим только для чтения
Добавьте атрибут readonly, чтобы перевести выпадающий список в режим только для чтения.
Отключенное состояние
Добавьте атрибут disabled, чтобы отключить выпадающий список.
Возможность очистки
Добавьте атрибут clearable, чтобы справа от выпадающего списка появлялась кнопка очистки, когда значение выбрано.
Также можно настроить кнопку очистки через слот clear.
Положение выпадающего меню
Используйте атрибут placement для задания положения выпадающего меню.
Выравнивание текста по правому краю
Добавьте атрибут end-aligned, чтобы выровнять текст по правому краю.
Префиксные и суффиксные текст и иконки
С помощью атрибутов icon и end-icon можно добавить иконки Material Icons слева и справа от выпадающего списка. Также можно использовать слоты icon и end-icon.
С помощью атрибутов prefix и suffix можно добавить текст слева и справа от выпадающего списка. Также можно использовать слоты prefix и suffix. Этот текст отображается только когда выпадающий список в фокусе или имеет значение.
API
Свойства
| Атрибут | Свойство | Reflect | Тип | По умолчанию |
|---|---|---|---|---|
variant | variant | 'filled' | 'outlined' | 'filled' | |
Стиль выпадающего списка. Возможные значения:
| ||||
multiple | multiple | boolean | false | |
Определяет, поддерживается ли множественный выбор. | ||||
name | name | string | '' | |
Имя поля выбора, будет отправлено вместе с данными формы. | ||||
value | value | string | string[] | '' | |
Значение поля выбора, будет отправлено вместе с данными формы. Если атрибут | ||||
defaultValue | string | string[] | '' | ||
Значение по умолчанию. При сбросе формы восстанавливается именно оно. Это свойство задаётся только через JavaScript. | ||||
label | label | string | - | |
Текст метки. | ||||
placeholder | placeholder | string | - | |
Текст-заполнитель. | ||||
helper | helper | string | - | |
Вспомогательный текст внизу поля выбора. Можно задать через | ||||
clearable | clearable | boolean | false | |
Определяет, можно ли очистить выбранное значение. | ||||
clear-icon | clearIcon | string | - | |
Имя иконки Material Icons для кнопки очистки справа, когда поле выбора можно очистить. Можно задать через | ||||
placement | placement | 'auto' | 'bottom' | 'top' | 'auto' | |
Расположение выпадающего списка. Возможные значения:
| ||||
end-aligned | endAligned | boolean | false | |
Определяет, выравнивать ли текст по правому краю. | ||||
prefix | prefix | string | - | |
Текст-префикс поля выбора. Отображается только при фокусе или когда поле выбора имеет значение. Можно задать через | ||||
suffix | suffix | string | - | |
Текст-суффикс поля выбора. Отображается только при фокусе или когда поле выбора имеет значение. Можно задать через | ||||
icon | icon | string | - | |
Имя иконки Material Icons для префикса слева. Можно задать через | ||||
end-icon | endIcon | string | - | |
Имя иконки Material Icons для суффикса справа. Можно задать через | ||||
error-icon | errorIcon | string | - | |
Имя иконки Material Icons справа при ошибке валидации поля формы. Можно задать через | ||||
form | form | string | - | |
Связанный элемент Если свойство не задано, элемент должен быть дочерним по отношению к | ||||
readonly | readonly | boolean | false | |
Только для чтения. | ||||
disabled | disabled | boolean | false | |
Определяет, отключён ли компонент. | ||||
required | required | boolean | false | |
Определяет, обязательно ли для заполнения при отправке формы. | ||||
validity | ValidityState | - | ||
Объект, содержащий состояние валидации формы. См. | ||||
validationMessage | string | - | ||
Если проверка формы не пройдена, это свойство содержит сообщение об ошибке. Если проверка пройдена, это свойство будет пустой строкой. | ||||
autofocus | autofocus | boolean | false | |
Определяет, будет ли элемент автоматически получать фокус после загрузки страницы. | ||||
tabindex | tabIndex | number | - | |
Порядок перехода к элементу при нажатии клавиши Tab. | ||||
Методы
| Название | Параметры | Возвращаемое значение |
|---|---|---|
checkValidity | boolean | |
Проверяет, прошло ли поле формы валидацию. Если не прошло, возвращает | ||
reportValidity | boolean | |
Проверяет, прошло ли поле формы валидацию. Если не прошло, возвращает Если проверка не пройдена, также отображает сообщение об ошибке валидации в компоненте. | ||
setCustomValidity |
| void |
Устанавливает пользовательский текст сообщения об ошибке. Пока задан непустой текст, поле считается не прошедшим проверку. | ||
click | void | |
Имитирует щелчок мыши по элементу. | ||
focus |
| void |
Устанавливает фокус на текущий элемент. В качестве аргумента можно передать объект со свойством:
| ||
blur | void | |
Убирает фокус с текущего элемента. | ||
События
| Название |
|---|
focus |
Срабатывает при получении фокуса. |
blur |
Срабатывает при потере фокуса. |
change |
Срабатывает при изменении выбранного значения. |
invalid |
Возникает, когда поле формы не проходит валидацию. |
clear |
Срабатывает при клике на кнопку очистки, добавленную свойством |
Slots
| Название |
|---|
| (по умолчанию) |
Элементы |
icon |
Иконка слева. |
end-icon |
Иконка справа. |
error-icon |
Иконка справа в состоянии ошибки валидации. |
prefix |
Текст слева. |
suffix |
Текст справа. |
clear-button |
Кнопка очистки. |
clear-icon |
Иконка внутри кнопки очистки. |
helper |
Вспомогательный текст внизу. |
CSS Parts
| Название |
|---|
chips |
Контейнер для чипов выбранных значений при множественном выборе. |
chip |
Чип каждого выбранного значения при множественном выборе. |
chip__button |
Элемент |
chip__label |
Текст внутри чипа. |
chip__delete-icon |
Иконка удаления внутри чипа. |
text-field |
Текстовое поле, элемент |
text-field__container |
Контейнер текстового поля внутри text-field. |
text-field__icon |
Иконка слева внутри text-field. |
text-field__end-icon |
Иконка справа внутри text-field. |
text-field__error-icon |
Иконка справа в состоянии ошибки валидации внутри text-field. |
text-field__prefix |
Текст слева внутри text-field. |
text-field__suffix |
Текст справа внутри text-field. |
text-field__label |
Текст метки внутри text-field. |
text-field__input |
Элемент |
text-field__clear-button |
Кнопка очистки внутри text-field. |
text-field__clear-icon |
Иконка внутри кнопки очистки внутри text-field. |
text-field__supporting |
Контейнер вспомогательной информации внизу text-field, включая helper и error. |
text-field__helper |
Вспомогательный текст внизу text-field. |
text-field__error |
Текст ошибки внизу text-field. |
menu |
Выпадающее меню, элемент |