MDUIDocs
Копировать ссылку llms.txtКопировать ссылку llms-full.txtПросмотреть страницу в MarkdownОбсудить страницу с ChatGPTОбсудить полную документацию проекта с ChatGPT
Предустановленный цвет
Пользовательский цвет
Извлечь цвет из обоев
Пожалуйста, выберите обои
Начало работы
Разработка с помощью ИИ
Стили
Интеграция с фреймворками
Компоненты
Avatar АватарBadge БейджBottomAppBar Нижняя панель приложенияButton КнопкаButtonIcon Кнопка с иконкойCard КарточкаCheckbox ЧекбоксChip ЧипCircularProgress Круговой индикатор прогрессаCollapse Раскрывающийся блокDialog Диалоговое окноDivider РазделительDropdown Выпадающее менюFab Плавающая кнопка действияIcon ИконкаLayout LayoutLinearProgress Линейный индикатор прогрессаList СписокMenu МенюNavigationBar Панель навигацииNavigationDrawer Выдвижная панель навигацииNavigationRail Боковая панель навигацииRadio РадиокнопкаRangeSlider Слайдер диапазонаSelect Выпадающий списокSegmentedButton Сегментированная кнопкаSlider СлайдерSnackbar СнэкбарSwitch ПереключательTabs ВкладкиTextField Текстовое полеTooltip ТултипTopAppBar Верхняя панель приложения
Функции
Библиотеки

TextFieldТекстовое поле

Текстовое поле позволяет пользователю вводить текст на странице, обычно используется в формах и диалоговых окнах.

Использование

При необходимости импортируйте компонент:

import 'mdui/components/text-field.js';

При необходимости импортируйте типы TypeScript:

import type { TextField } from 'mdui/components/text-field.js';

Пример использования:

<mdui-text-field label="Text Field"></mdui-text-field>

Примеры

Форма

Используйте атрибут variant для установки формы текстового поля.

Вспомогательный текст

Используйте атрибут label для задания текста метки над текстовым полем.

Используйте атрибут placeholder для задания текста-заполнителя, когда поле пусто.

Используйте атрибут helper для задания вспомогательного текста внизу поля. Также можно использовать слот helper. Добавьте атрибут helper-on-focus, чтобы вспомогательный текст отображался только при фокусе на поле ввода.

Возможность очистки

Добавьте атрибут clearable, чтобы справа от текстового поля появлялась кнопка очистки, когда поле не пусто.

Выравнивание текста по правому краю

Добавьте атрибут end-aligned, чтобы выровнять текст по правому краю.

Префиксы, суффиксы и иконки

С помощью атрибутов icon и end-icon можно добавить иконки Material Icons слева и справа от текстового поля. Также можно использовать слоты icon и end-icon.

С помощью атрибутов prefix и suffix можно добавить текст слева и справа от текстового поля. Также можно использовать слоты prefix и suffix. Этот текст отображается только когда поле в фокусе или имеет значение.

Режим только для чтения

Добавьте атрибут readonly, чтобы перевести текстовое поле в режим только для чтения.

Отключенное состояние

Добавьте атрибут disabled, чтобы отключить текстовое поле.

Многострочное текстовое поле

Используйте атрибут rows, чтобы задать количество строк для многострочного текстового поля.

Также можно добавить атрибут autosize, чтобы поле автоматически подстраивало высоту под длину вводимого текста. С помощью атрибутов min-rows и max-rows можно задать минимальное и максимальное количество строк при автоматическом изменении высоты.

Счетчик символов

Когда атрибут maxlength установлен, можно добавить атрибут counter, чтобы внизу текстового поля отображался счетчик символов.

Поле для пароля

При установке type="password" добавление атрибута toggle-password добавляет кнопку переключения видимости пароля справа от поля.

API

Свойства

АтрибутСвойствоReflectТипПо умолчанию
variantvariant'filled' | 'outlined''filled'

Форма текстового поля. По умолчанию filled. Возможные значения:

  • filled — текстовое поле с фоновым цветом, более выраженный визуальный акцент
  • outlined — текстовое поле с рамкой, менее выраженный визуальный акцент
typetype'text' | 'number' | 'password' | 'url' | 'email' | 'search' | 'tel' | 'hidden' | 'date' | 'datetime-local' | 'month' | 'time' | 'week''text'

Тип ввода текстового поля. По умолчанию text. Возможные значения:

  • text — значение по умолчанию. Текстовое поле
  • number — только цифры. На устройствах с динамической клавиатурой отображается цифровая клавиатура
  • password — для ввода пароля, значение скрывается
  • url — для ввода URL, проверяет формат URL. На поддерживаемых устройствах отображается соответствующая клавиатура
  • email — для ввода email, проверяет формат email. На поддерживаемых устройствах отображается соответствующая клавиатура
  • search — для поля поиска. На устройствах с динамической клавиатурой иконка Enter меняется на иконку поиска
  • tel — для ввода номера телефона. На устройствах с динамической клавиатурой отображается цифровая клавиатура телефона
  • hidden — скрывает элемент, но его значение отправляется на сервер
  • date — элемент для ввода даты (год, месяц, день, без времени). В поддерживаемых браузерах при активации открывается выбор даты
  • datetime-local — элемент для ввода даты и времени без часового пояса. В поддерживаемых браузерах при активации открывается выбор даты
  • month — элемент для ввода года и месяца, без часового пояса
  • time — элемент для ввода времени, без часового пояса
  • week — элемент для ввода даты в формате год-неделя, без часового пояса
namenamestring''

Имя текстового поля, будет отправлено вместе с данными формы.

valuevaluestring''

Значение текстового поля, будет отправлено вместе с данными формы.

defaultValuestring''

Значение по умолчанию. При сбросе формы восстанавливается именно оно. Это свойство задаётся только через JavaScript.

labellabelstring-

Текст метки.

placeholderplaceholderstring-

Текст-заполнитель.

helperhelperstring-

Вспомогательный текст внизу текстового поля. Можно задать через slot="helper".

helper-on-focushelperOnFocusbooleanfalse

Определяет, показывать ли вспомогательный текст только при фокусе.

clearableclearablebooleanfalse

Определяет, можно ли очистить текстовое поле.

clear-iconclearIconstring-

Имя иконки Material Icons для кнопки очистки справа, когда поле можно очистить. Можно задать через slot="clear-icon".

end-alignedendAlignedbooleanfalse

Определяет, выравнивать ли текст по правому краю.

prefixprefixstring-

Текст-префикс текстового поля. Отображается только при фокусе или когда поле имеет значение. Можно задать через slot="prefix".

suffixsuffixstring-

Текст-суффикс текстового поля. Отображается только при фокусе или когда поле имеет значение. Можно задать через slot="suffix".

iconiconstring-

Имя иконки Material Icons для префикса слева. Можно задать через slot="icon".

end-iconendIconstring-

Имя иконки Material Icons для суффикса справа. Можно задать через slot="end-icon".

error-iconerrorIconstring-

Имя иконки Material Icons справа при ошибке валидации поля формы. Можно задать через slot="error-icon".

formformstring-

Связанный элемент <form>. В качестве значения укажите id элемента <form> на той же странице.

Если свойство не задано, элемент должен быть дочерним по отношению к <form>. С этим свойством элемент можно разместить в любом месте страницы, а не только внутри <form>.

readonlyreadonlybooleanfalse

Только для чтения.

disableddisabledbooleanfalse

Определяет, отключён ли компонент.

requiredrequiredbooleanfalse

Определяет, обязательно ли для заполнения при отправке формы.

rowsrowsnumber-

Фиксированное количество отображаемых строк (для <textarea>).

autosizeautosizebooleanfalse

Автоматически подстраивать высоту под содержимое (для <textarea>).

min-rowsminRowsnumber-

Минимальное количество строк при autosize=true.

max-rowsmaxRowsnumber-

Максимальное количество строк при autosize=true.

minlengthminlengthnumber-

Минимальное количество символов.

maxlengthmaxlengthnumber-

Максимальное количество символов.

countercounterbooleanfalse

Определяет, показывать ли счётчик символов. Действует только при указании maxlength.

minminnumber-

Минимальное числовое значение (при type="number").

maxmaxnumber-

Максимальное числовое значение (при type="number").

stepstepnumber-

Шаг изменения числового значения (при type="number").

patternpatternstring-

Регулярное выражение для валидации формы.

toggle-passwordtogglePasswordbooleanfalse

При type="password" добавляет кнопку для отображения/скрытия пароля.

show-password-iconshowPasswordIconstring-

Имя иконки Material Icons для кнопки отображения пароля. Можно задать через slot="show-password-icon".

hide-password-iconhidePasswordIconstring-

Имя иконки Material Icons для кнопки скрытия пароля. Можно задать через slot="hide-password-icon".

autocapitalizeautocapitalize'none' | 'sentences' | 'words' | 'characters'-

Нестандартный атрибут iOS для управления автокапитализацией. Действует в iOS5 и новее. Возможные значения:

  • none — отключить капитализацию
  • sentences — капитализация первого слова в предложении
  • words — капитализация первого символа каждого слова
  • characters — капитализация всех символов
autocorrectautocorrectstring-

Атрибут autocorrect элемента <input>.

autocompleteautocompletestring-

Атрибут autocomplete элемента <input>.

enterkeyhintenterkeyhint'enter' | 'done' | 'go' | 'next' | 'previous' | 'search' | 'send'-

Атрибут enterkeyhint элемента <input> для настройки текста или иконки на клавише Enter виртуальной клавиатуры. Отображение зависит от устройства и языка. Возможные значения:

  • enter — вставить новую строку
  • done — готово
  • go — перейти
  • next — далее
  • previous — назад
  • search — поиск
  • send — отправить
spellcheckspellcheckbooleanfalse

Определяет, включена ли проверка орфографии.

inputmodeinputmode'none' | 'text' | 'decimal' | 'numeric' | 'tel' | 'search' | 'email' | 'url'-

Атрибут inputmode элемента <input> для настройки типа виртуальной клавиатуры. Возможные значения:

  • none — без виртуальной клавиатуры. Полезно при реализации собственного ввода
  • text — стандартная текстовая клавиатура
  • decimal — клавиатура для ввода десятичных чисел, может содержать десятичную точку . или запятую ,
  • numeric — цифровая клавиатура (0-9)
  • tel — телефонная клавиатура, содержит цифры 0-9, звёздочку * и решётку #
  • search — клавиатура, оптимизированная для поиска, кнопка отправки обычно показывает search или «Поиск»
  • email — клавиатура, оптимизированная для ввода email, обычно содержит @ и .
  • url — клавиатура, оптимизированная для ввода URL, обычно содержит ., /, #
validityValidityState-

Объект, содержащий состояние валидации формы. См. ValidityState.

validationMessagestring-

Если проверка формы не пройдена, это свойство содержит сообщение об ошибке. Если проверка пройдена, это свойство будет пустой строкой.

valueAsNumbernumber-

Получает текущее значение в виде числа number; или задаёт значение в виде числа. Если значение не может быть преобразовано в число, возвращается NaN.

autofocusautofocusbooleanfalse

Определяет, будет ли элемент автоматически получать фокус после загрузки страницы.

tabindextabIndexnumber-

Порядок перехода к элементу при нажатии клавиши Tab.

Методы

НазваниеПараметрыВозвращаемое значение
select
void

Выделяет текст в текстовом поле.

setSelectionRange
  • start: number
  • end: number
  • direction: 'forward' | 'backward' | 'none'
void

Выделяет определённый диапазон текста в текстовом поле.

setRangeText
  • replacement: string
  • start: number
  • end: number
  • selectMode: 'select' | 'start' | 'end' | 'preserve'
void

Заменяет текст в определённом диапазоне на новый текст.

checkValidity
boolean

Проверяет, прошло ли поле формы валидацию. Если не прошло, возвращает false и вызывает событие invalid; если прошло, возвращает true.

reportValidity
boolean

Проверяет, прошло ли поле формы валидацию. Если не прошло, возвращает false и вызывает событие invalid; если прошло, возвращает true.

Если проверка не пройдена, также отображает сообщение об ошибке валидации в компоненте.

setCustomValidity
  • message: string
void

Устанавливает пользовательский текст сообщения об ошибке. Пока задан непустой текст, поле считается не прошедшим проверку.

click
void

Имитирует щелчок мыши по элементу.

focus
  • options: FocusOptions (Опционально)
void

Устанавливает фокус на текущий элемент.

В качестве аргумента можно передать объект со свойством:

  • preventScroll: по умолчанию после получения фокуса страница прокручивается, чтобы элемент появился в области видимости. Чтобы этого избежать, задайте для этого свойства значение true.
blur
void

Убирает фокус с текущего элемента.

События

Название
focus

Срабатывает при получении фокуса.

blur

Срабатывает при потере фокуса.

change

Срабатывает при изменении значения и потере фокуса.

input

Срабатывает при изменении значения.

invalid

Возникает, когда поле формы не проходит валидацию.

clear

Срабатывает при клике на кнопку очистки, добавленную свойством clearable. Можно отменить очистку, вызвав event.preventDefault().

Slots

Название
icon

Иконка слева.

end-icon

Иконка справа.

error-icon

Иконка справа в состоянии ошибки валидации.

prefix

Текст слева.

suffix

Текст справа.

clear-button

Кнопка очистки.

clear-icon

Иконка внутри кнопки очистки.

toggle-password-button

Кнопка переключения видимости пароля.

show-password-icon

Иконка внутри кнопки переключения пароля в режиме отображения пароля.

hide-password-icon

Иконка внутри кнопки переключения пароля в режиме скрытия пароля.

helper

Вспомогательный текст внизу.

CSS Parts

Название
container

Контейнер текстового поля.

icon

Иконка слева.

end-icon

Иконка справа.

error-icon

Иконка справа в состоянии ошибки валидации.

prefix

Текст слева.

suffix

Текст справа.

label

Текст метки сверху.

input

Внутренний элемент <input> или <textarea>.

clear-button

Кнопка очистки.

clear-icon

Иконка внутри кнопки очистки.

toggle-password-button

Кнопка переключения видимости пароля.

show-password-icon

Иконка внутри кнопки переключения пароля в режиме отображения пароля.

hide-password-icon

Иконка внутри кнопки переключения пароля в режиме скрытия пароля.

supporting

Контейнер вспомогательной информации внизу, включая helper, error, counter.

helper

Вспомогательный текст внизу.

error

Текст ошибки внизу.

counter

Счётчик символов справа внизу.

На этой странице