Вступление #
Для работы маски ввода можно использовать по умолчанию класс .js-mask.
Маска ввода реализована на базе Imask.js.
Установка #
Пример разметки и инициализации маски.
<input
class="js-mask"
type="text"
placeholder="Введите номер телефона"
/>
// настройки Imask.js(https://imask.js.org/guide.html).
const options = {
type: 'number',
min: 100,
max: 10000,
thousandsSeparator: '.',
};
BasicMask.init('.my-field', options);
BasicMask.init(document.querySelector('.my-field'), options);
BasicMask.init(document.querySelectorAll('.my-field'), options);
// или
BasicMask.init(); // по умолчанию инициализирует элементы с классом .js-mask
Конфигурация #
Настройки, заданные с использованием data-атрибутов.
data-mask-options #
В значениях указываются параметры для гибкой настройки маски, с ними можно ознакомиться на странице официальной документации Imask.js. Здесь же показаны основные параметры:
type #
Указывает тип маски.
| Название | Тип | Описание |
|---|---|---|
default или phone |
string |
Маска для номеров телефона. |
date |
string |
Маска для дат. |
number |
string |
Маска для чисел. |
currency |
string |
Маска для вывода суммы в читаемом виде. |
pattern #
Шаблон маски для поля, каждый тип имеет свой шаблон по умолчанию. Более подробную информацию можно найти на странице официальной документации.
| Название | Тип | Описание |
|---|---|---|
+{7}(000)000-00-00 |
string |
Относится к типу маски: default и phone. |
d{.}`m{.}`Y |
string |
Относится к типу маски: date. |
Number |
string |
Относится к типу маски: number. |
num ₽ |
string |
Относится к типу маски: currency. |
Паттерны у даты #
Если для даты необходимы изменить паттерн по умолчанию, то для этого необходимо будет ещё использовать два параметра: format и parse.
В данном примере реализуем маску YYYY-MM-DD:
<label for="field-date-pattern">
<span class="name">Введите дату</span>
<input
class="field"
id="field-date-pattern"
type="text"
placeholder="ГОД-МЕСЯЦ-ДЕНЬ"
>
</label>
BasicMask.init('#field-date-pattern', {
type: 'date',
pattern: 'Y-`m-`d',
format: function (date) {
let day = date.getDate();
let month = date.getMonth() + 1;
let year = date.getFullYear();
if (day < 10) day = "0" + day;
if (month < 10) month = "0" + month;
return [year, month, day].join('-');
},
parse: function (str) {
let yearMonthDay = str.split('-');
return new Date(yearMonthDay[0], yearMonthDay[1] - 1, yearMonthDay[2]);
}
});
Методы #
updateOptions() #
Обновить или добавить параметры для маски поля.
BasicMask.updateOptions(element, options);
Параметры:
| Название | Тип | Описание |
|---|---|---|
element |
object / string |
Поле, у которого необходимо обновить параметры маски. Поле не обязательно инициализировать, метод автоматически создаёт маску и применяет новые параметры. |
options |
object |
Обновление или добавление параметров маски. Поддерживает все параметры библиотеки Imask.js. |