Экземпляр маски, создаваемый через Inputmask,
представляет собой объект с набором методов, управляющих жизненным
циклом маски, её состоянием, синхронизацией с DOM-элементом и
взаимодействием с пользовательским вводом. Работа через экземплярный API
обеспечивает более гибкий контроль по сравнению с декларативной
инициализацией.
Создание экземпляра маски выполняется через вызов конструктора:
const im = new Inputmask({
mask: "+7 (999) 999-99-99"
});
Однако сам по себе экземпляр не активен до момента привязки к
элементу. Для этого используется метод mask().
Метод mask() выполняет основную операцию — подключает
маску к DOM-элементу или коллекции элементов.
im.mask(document.querySelector("input"));
Допустимо передавать:
Повторный вызов mask() на уже замаскированном элементе
не создаёт новый экземпляр, а использует существующую привязку.
Внутренне метод:
keydown,
input, blur, focus)Метод remove() отключает маску и восстанавливает
исходное поведение элемента.
im.remove(document.querySelector("input"));
При удалении:
Метод применяется при динамическом переключении форматов ввода или при уничтожении компонентов в SPA.
Метод setValue() позволяет программно установить
значение с учётом правил маски.
im.setValue("+79991234567");
В отличие от прямого присваивания input.value, данный
метод:
Если значение не соответствует маске, оно может быть частично обрезано или адаптировано в соответствии с правилами определения валидных символов.
Метод getValue() возвращает текущее значение поля.
const value = im.getValue();
Поведение метода зависит от конфигурации:
unmask возвращает «чистое»
значение без маскиТипичная логика:
Метод setOptions() позволяет динамически изменять
конфигурацию маски без её пересоздания.
im.setOptions({
placeholder: "_",
showMaskOnHover: false
});
После применения:
Особенно важно при адаптивных интерфейсах, где формат ввода зависит от состояния формы.
Метод format() применяется для форматирования строки без
привязки к DOM-элементу.
const formatted = im.format("79991234567");
Используется для:
Метод не изменяет состояние экземпляра и работает как чистая функция относительно текущей конфигурации.
Метод unmaskedvalue() возвращает значение без маски,
независимо от настроек отображения.
const raw = im.unmaskedvalue();
Особенности:
Внутренне извлекает значения из буфера mask tokens, исключая литералы и placeholder-символы.
Метод isComplete() определяет, заполнена ли маска
полностью.
if (im.isComplete()) {
// значение соответствует полной маске
}
Возвращает:
true — если все обязательные позиции заполненыfalse — если есть незаполненные обязательные
символыИспользуется для валидации формы на клиенте.
Метод isValid() выполняет более строгую проверку, чем
isComplete().
const valid = im.isValid();
Проверяет:
В некоторых конфигурациях может учитывать регулярные выражения или функции-валидаторы, встроенные в mask definition.
Метод focus() программно переводит фокус на элемент с
маской.
im.focus();
Дополнительно:
positionCaretOnClickМетод blur() снимает фокус с элемента.
im.blur();
Используется для:
Метод refreshValue() синхронизирует внутреннее состояние
маски с текущим значением DOM-элемента.
im.refreshValue();
Применяется в случаях, когда значение input было изменено внешними скриптами без использования API Inputmask.
При вызове:
Низкоуровневые методы управления событиями.
im.detachEventHandlers();
im.reattachEventHandlers();
Используются редко и преимущественно внутри интеграций с фреймворками.
detachEventHandlers():
reattachEventHandlers():
Метод getmetadata() возвращает метаданные текущей
маски.
const meta = im.getmetadata();
Содержит:
Используется при сложных сценариях, где маска формируется динамически и требуется доступ к её структуре.
Метод analyseMask() выполняет анализ текущего шаблона
маски.
const analysis = im.analyseMask();
Результат может включать:
Метод полезен при отладке и построении динамических масок.
Метод escape() экранирует специальные символы маски.
const escaped = im.escape("+7 (999)");
Используется для:
Некоторые реализации предоставляют доступ к внутреннему
maskset:
const set = im.maskset;
Это неформализованный API, позволяющий:
Использование напрямую связано с внутренней архитектурой и требует понимания механизма tokenization.
Свойство value экземпляра отражает текущее значение
маскированного поля.
console.log(im.value);
Поведение:
getValue() в сложных сценарияхЭкземпляр Inputmask поддерживает внутреннее состояние, включающее:
Методы экземпляра оперируют этим состоянием напрямую, обеспечивая согласованность между UI и логикой обработки ввода.