В библиотеке Inputmask заполнение полей ввода частично определяется
механизмом отображения символов-заглушек, которые показывают ожидаемую
структуру данных до ввода реальных значений. Эти символы задаются через
параметр placeholder и тесно связаны с маской, определяющей
формат ввода.
Параметр placeholder управляет тем, какие символы
отображаются в пустых позициях маски. По умолчанию Inputmask использует
символ _, однако поведение может быть переопределено в
зависимости от требований интерфейса и логики формы.
Пример базовой конфигурации:
Inputmask({
mask: "9999-99-99",
placeholder: "_"
}).mask("#date");
В данном случае поле ввода отображает структуру:
____-__-__
Каждый символ _ соответствует позиции, которую
необходимо заполнить.
В качестве placeholder может использоваться любой символ
или строка, однако важно учитывать визуальную читаемость и
согласованность интерфейса.
Inputmask({
mask: "(999) 999-9999",
placeholder: "*"
}).mask("#phone");
Отображение:
(***) ***-****
Также допустимо использование пробела:
Inputmask({
mask: "9999 9999 9999 9999",
placeholder: " "
}).mask("#card");
В этом случае визуальная структура маски становится менее выраженной, так как пробелы визуально сливаются с пустыми позициями.
В некоторых сценариях требуется полностью скрыть отображение маски до начала ввода. Это достигается установкой пустого значения:
Inputmask({
mask: "99/99/9999",
placeholder: ""
}).mask("#date");
Поведение становится минималистичным: поле выглядит пустым до ввода данных, несмотря на наличие ограничений маски.
Placeholder не является независимым механизмом отображения. Он работает совместно с внутренними правилами маски, включая определения символов:
9 — числовой символa — буквенный символ* — буквенно-цифровой символКаждая позиция маски, не заполненная пользователем, визуализируется
через placeholder.
Параметр showMaskOnHover управляет отображением маски
при наведении курсора на поле ввода, когда поле находится в состоянии
без фокуса. Этот механизм влияет на UX, позволяя временно
демонстрировать структуру ввода без активного взаимодействия с
полем.
При включённом showMaskOnHover маска отображается при
наведении курсора мыши на элемент, даже если пользователь не активировал
поле.
Inputmask({
mask: "9999-9999-9999-9999",
showMaskOnHover: true
}).mask("#card");
В этом случае поле ведёт себя следующим образом:
Если параметр установлен в false, маска не раскрывается
при hover-событиях:
Inputmask({
mask: "999-99-9999",
showMaskOnHover: false
}).mask("#ssn");
Поведение становится более «инертным»: структура маски отображается
только при фокусе на поле (в зависимости от других параметров, например
showMaskOnFocus).
showMaskOnHover часто рассматривается вместе с
параметром showMaskOnFocus, который определяет поведение
при активном вводе.
Комбинации:
Inputmask({
mask: "99/99/9999",
showMaskOnHover: true,
showMaskOnFocus: true
}).mask("#date");
Inputmask({
mask: "99/99/9999",
showMaskOnHover: true,
showMaskOnFocus: false
}).mask("#date");
Поведение showMaskOnHover влияет на восприятие формы как
системы подсказок:
placeholder создаёт гибкие сценарии
подсказокОба параметра взаимодействуют на уровне визуализации незаполненных позиций. Их совместная работа определяет, когда и как отображается структура маски.
Inputmask({
mask: "9999-99-99",
placeholder: "_",
showMaskOnHover: true
}).mask("#date");
Поведение:
_Inputmask({
mask: "9999-99-99",
placeholder: "",
showMaskOnHover: true
}).mask("#date");
Особенность:
Inputmask({
mask: "(999) 999-9999",
placeholder: "*",
showMaskOnHover: true,
showMaskOnFocus: true
}).mask("#phone");
Результат:
*Комбинация placeholder и showMaskOnHover
формирует трёхуровневую модель визуализации:
Статическое состояние
Состояние наведения
Состояние фокуса
Эти уровни не существуют изолированно и формируют единый механизм отображения, определяющий поведение поля ввода в различных сценариях взаимодействия с интерфейсом.