Использование маски ввода jquery.mask для телефонных номеров

Использование маски ввода jquery.mask для телефонных номеров

02.03.2023
535
Если вы используете формы на вашем сайте, то вы, возможно, столкнулись с тем, что пользователи не всегда вводят данные в нужном формате. Один из способов решения этой проблемы - это использование масок ввода. Маска ввода - это текстовый шаблон, который определяет формат вводимых данных. В этой статье мы рассмотрим пример использования маски ввода для телефонных номеров в России.

Шаг 1: Подключение библиотеки jQuery

Для использования маски ввода для телефонного номера в России, нам нужно подключить библиотеку jQuery. Если вы уже используете jQuery на вашем сайте, то этот шаг можно пропустить. Если же нет, то добавьте в ваш код следующую строку:

<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>

Шаг 2: Подключение библиотеки jQuery Mask

Для создания маски ввода для телефонного номера в России мы будем использовать библиотеку jQuery Mask. Чтобы подключить эту библиотеку, добавьте в ваш код следующую строку:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.mask/1.14.16/jquery.mask.min.js"></script>

Шаг 3: Создание формы

Создайте форму на вашей странице. Например:

<form>
  <label for="phone">Телефон:</label>
  <input type="tel" id="phone" name="phone">
  <button type="submit">Отправить</button>
</form>

Обратите внимание на атрибут type="tel". Это указывает браузеру на то, что это поле ввода для телефонного номера.

Шаг 4: Добавление маски ввода

Добавьте следующий код в ваш JavaScript:

$('input[name="phone"]').mask('+7 999 999-99-99', {"minLength": 15});

Этот код добавляет маску ввода для поля ввода с именем "phone". Маска определяет формат телефонного номера в России: +7 XXX XXX-XX-XX. Также устанавливается минимальная длина вводимых символов (15 символов).

Шаг 5: Проверка введенных данных

Чтобы убедиться, что пользователь ввел корректный телефонный номер, мы можем использовать следующий код:

$('input[name="phone"]').on('keyup', function() {
  var phone = $(this).val().replace(/\\D/g,'');
  if(phone.length >= 11) {
    this.setCustomValidity('');
  } else {
    this.setCustomValidity('Укажите корректный номер!');
  }
});

Этот код добавляет обработчик события keyup, который проверяет, что количество введенных символов не меньше 11. Если количество символов меньше 11, устанавливается сообщение об ошибке "Укажите корректный номер!". Если количество символов равно или больше 11, сообщение об ошибке не выводится.

Практический пример

Номер телефона имеет маску +7 999 999-99-99, итоговая длина номер телефона 16 символов, а теперь пример кода для реализации првоерки и вывода уведомления, которая отработает при попытке отправки формы.

$('input[name="phone"]').mask('+7 999 999-99-99', {"minLength": 16}).on('keyup', function() {
    var phone = $(this).val().replace(/\\D/g,'');
    if(phone.length >= 16) {
        this.setCustomValidity('');
    } else {
        this.setCustomValidity('Неверный формат, проверьте введённый номер!');
    }
});

Заключение

В этой статье мы рассмотрели, как использовать маску ввода для телефонных номеров в России. Маска ввода - это удобный способ контролировать вводимые пользователем данные и уменьшить количество ошибок при заполнении форм. Вы можете использовать маску ввода для других типов данных, таких как почтовый индекс, номер кредитной карты, и т.д. Библиотека jQuery Mask позволяет создавать маски ввода для различных типов данных, и ее использование может значительно упростить работу с формами на вашем сайте.