showMaskOnFocus управляет тем, отображается ли маска
ввода в момент получения полем фокуса. Речь идёт о визуальном поведении
элемента <input> при активном состоянии, когда
пользователь устанавливает курсор внутрь поля.
Опция влияет только на отображение шаблона маски, не изменяя правила валидации и не затрагивая внутреннюю логику обработки ввода. Маска остаётся активной всегда, но её визуальное представление может динамически переключаться в зависимости от состояния фокуса.
Ключевая идея заключается в контроле UX-поведения: показывать структуру ввода сразу при фокусе или оставлять поле визуально «пустым», пока пользователь не начнёт ввод.
Опция принимает логическое значение:
true — маска отображается при фокусеfalse — маска не отображается при фокусеПри этом:
true структура ввода становится видимой сразу после
активации поля;false поле может выглядеть пустым или частично
скрытым до начала ввода.Важно, что речь идёт именно о визуальном слое. Логика подстановки
символов маски (9, a, * и т.д.)
продолжает работать независимо от этого флага.
Поведение showMaskOnFocus тесно связано с состояниями
input-элемента:
Blur (потеря фокуса) Поле может отображать либо пустое значение, либо форматированное значение, если оно уже введено.
Focus (получение фокуса) Здесь вступает в
действие showMaskOnFocus:
true → отображается шаблон маскиfalse → маска скрывается до первого ввода символаInput (ввод данных) Маска начинает заполняться пользователем независимо от настройки, но стартовое отображение определяется именно фокусным состоянием.
Inputmask использует комбинацию маски и
placeholder-подстановок. showMaskOnFocus влияет на то,
будет ли placeholder визуально представлен в момент активного
состояния.
При различных конфигурациях возможны следующие комбинации поведения:
Особенно важно взаимодействие с параметром
placeholder:
showMaskOnFocus: true
он часто визуально заменяется структурой маски;false placeholder может оставаться единственным
визуальным ориентиром до ввода.Разные значения showMaskOnFocus формируют различные
модели взаимодействия:
trueВизуально поле сразу демонстрирует шаблон вроде:
+7 (___) ___-__-__
falseТакой режим используется в интерфейсах, где важно минимизировать визуальный шум.
showMaskOnFocus редко используется изолированно и часто
входит в комплекс настроек поведения:
showMaskOnHoverclearMaskOnLostFocusautoUnmaskplaceholdergreedyКаждая из этих опций изменяет восприятие поля, но именно
showMaskOnFocus определяет момент появления структуры.
showMaskOnHoverПри одновременной настройке:
showMaskOnHover: trueshowMaskOnFocus: falseполе может показывать маску при наведении, но скрывать её при фокусе. Это создаёт нетривиальную динамику отображения:
При обратной конфигурации поведение становится более классическим:
clearMaskOnLostFocusПри значении:
clearMaskOnLostFocus: trueи showMaskOnFocus: false возможно состояние, при
котором:
Такой режим применяется в сценариях, где хранится «сырое» значение, а маска используется только как вспомогательный слой ввода.
autoUnmaskПри активном autoUnmask: true значение поля всегда
хранится без маски, но визуальное поведение при фокусе всё равно
регулируется showMaskOnFocus.
Это приводит к разделению:
showMaskOnFocus влияет только на визуальный слой, не
затрагивая фактическое значение.
Inputmask({
mask: "+7 (999) 999-99-99",
showMaskOnFocus: true
}).mask("#phone");
Поведение:
Inputmask({
mask: "99/99/9999",
showMaskOnFocus: false
}).mask("#date");
Поведение:
Inputmask({
mask: "9999 9999 9999 9999",
showMaskOnFocus: false,
showMaskOnHover: true
}).mask("#card");
Поведение:
На уровне механизма Inputmask поведение showMaskOnFocus
реализуется через управление рендерингом placeholder-символов и позиции
курсора.
При активации поля выполняются следующие операции:
showMaskOnFocusЕсли значение false, визуальный слой может быть временно
«сжат» до пустого состояния, однако внутренняя модель маски продолжает
существовать.
При вызове:
element.focus();
логика остаётся идентичной пользовательскому фокусу:
focus инициирует пересчёт отображенияshowMaskOnFocusЭто важно для динамических интерфейсов, где поля активируются автоматически (например, в многошаговых формах).
При изменении value программно во время фокуса:
showMaskOnFocus: true новое значение сразу
форматируется по маскеfalse значение может отображаться без визуального
шаблона до следующего вводаПри этом маска всегда остаётся активной на уровне логики и не отключается полностью.
Пустое поле — наиболее чувствительный сценарий для
showMaskOnFocus.
true отображается полная структура маски с
placeholder-символами
false поле может выглядеть как абсолютно пустое, без
визуального шаблона
Это различие определяет степень «навигационной подсказки» в интерфейсе.
Различные значения применяются в зависимости от модели интерфейса:
truefalseshowMaskOnFocus с
hover-поведенимВ системах с высокой плотностью данных чаще выбирается скрытие маски при фокусе, чтобы уменьшить визуальную нагрузку. В регистрационных и платежных формах чаще используется отображение маски сразу при активации поля, чтобы снизить количество ошибок формата.