Режим insertMode управляет тем, как библиотека Inputmask
обрабатывает ввод символов внутри уже сформированной маски. В основе
механизма лежит принцип работы курсора и сдвига существующего
содержимого при вводе новых значений.
При активированном режиме вставки вводимые символы не перезаписывают существующие, а встраиваются в строку, сдвигая последующие символы вправо. Это поведение ближе к классическому редакторскому режиму вставки текста.
При insertMode: true ввод нового символа приводит к
следующим изменениям:
Пример логики:
Маска: 99-99
Ввод: 12-34
Курсор после "1": 1|2-34
Ввод "9": 19|2-34 → 192-34
Такое поведение характерно для текстовых редакторов и обеспечивает сохранение ранее введённых данных при частичном редактировании.
При частично заполненной маске insertMode позволяет:
Однако в сложных масках с фиксированными разделителями (дата, телефон) вставка может приводить к активному перерасчёту позиций.
Курсор в режиме вставки ведёт себя предсказуемо:
Режим overwriteMode изменяет модель ввода таким образом,
что новые символы заменяют существующие на позиции
курсора, не вызывая сдвига строки.
В отличие от insertMode, здесь структура строки остаётся фиксированной, а изменяется только содержимое текущих позиций.
При overwriteMode: true ввод символа приводит к
следующему:
Пример:
Маска: 99-99
Значение: 12-34
Ввод "9" на позиции 1:
19-34
Здесь символ 2 заменяется на 9, а структура
маски сохраняется без сдвигов.
overwriteMode особенно заметен при редактировании уже заполненных значений:
Оба режима управляют поведением ввода, но базируются на разных моделях редактирования текста.
В конфигурации Inputmask оба режима могут пересекаться, но логика обработки строится с приоритетом overwriteMode.
Типичная модель:
overwriteMode, вставка отключается
логически;insertMode становится вторичным или игнорируется;Таким образом:
overwriteMode = true → режим перезаписи
overwriteMode = false → режим вставки (insertMode управляет поведением)
Механизм маскировки влияет на оба режима, так как каждый ввод проходит через слой форматирования.
При insertMode:
При overwriteMode:
Inputmask("99-99", {
insertMode: true
}).mask("#field");
Поведение: вставка символов со сдвигом строки.
Inputmask("99-99", {
overwriteMode: true
}).mask("#field");
Поведение: замена символов на текущей позиции курсора.
Inputmask("99-99", {
insertMode: false,
overwriteMode: true
}).mask("#field");
Конфигурация с явным приоритетом перезаписи, где insertMode фактически не участвует в логике ввода.
Используется в случаях:
Используется в случаях:
Удаление символов по-разному взаимодействует с режимами:
Разница между режимами проявляется в восприятии интерфейса:
При сложных масках выбор режима влияет на предсказуемость ввода и скорость редактирования уже заполненных значений.