Маска телефона Телефона - Inputmask любой страны

Маска телефона Телефона - Inputmask любой страны для Shop-Script

Маска телефона для корзины и других форм

Отзывов пока нет

7 дней бесплатно

Чтобы попробовать бесплатно, откройте плагин в своем «Инсталлере». Бесплатный период доступен только в облаке Webasyst.

Ваш отзыв
Установок
< 10
Разработчик
Поддержка

Что такое Inputmask для телефонов и зачем он нужен

Inputmask для телефонов — плагин для Shop-Script на Webasyst: на витрине подключает библиотеку Inputmask и накладывает мягкую международную маску на поля ввода телефона. Удобно для корзины, оформления заказа и любых других форм, где посетитель вводит номер в международном виде.

Как подключается к теме — плагин выводит скрипты через стандартный хук витрины frontend_head. Если тема не выводит этот хук, предусмотрены запасные варианты: frontend_footer и frontend_page, чтобы маска всё равно попала на страницу.

  • Что умеет плагин
    • Находить поля телефона по настраиваемым CSS-селекторам (по умолчанию — тип tel, имена, id, классы и placeholder со словами про телефон на русском и английском).
    • Исключать отдельные поля по списку селекторов-исключений (скрытые поля, пароль, email, класс .js-inputmask-ignore, атрибут data-inputmask-ignore="1" и другое — всё настраивается).
    • При необходимости подставлять «+» при фокусе в пустое поле и убирать одинокий «+» при уходе с поля — удобно для международного формата.
    • Нормализовать ввод и вставку из буфера: оставляет цифры и ведущий плюс, опционально добавляет «+» перед цифрами.
    • Пробовать телефонный каталог Inputmask (alias): сначала abstractphone, затем phone; если каталог недоступен — перейти на запасную маску вида «+» и до пятнадцати цифр.
    • Ставить у полей autocomplete="tel" и inputmode="tel"; при типе number пытаться переключить на tel для корректной клавиатуры на телефонах.
    • Подхватывать поля, появляющиеся в DOM позже: MutationObserver и при наличии jQuery — повторная инициализация после AJAX.
    • Вести отладочные сообщения в консоль браузера с префиксом [shop-inputmask], если включён режим отладки.
  • Что вы получаете
    • Более предсказуемый ввод телефона на витрине без правки шаблонов темы в каждом месте.
    • Гибкость: свои селекторы под нестандартные формы и отдельный список исключений.
    • Один раз настроили в админке — маска работает на подходящих полях автоматически.
  • Где настраиватьМагазин → Настройки → Плагины → Inputmask для телефонов (или аналогичный раздел плагинов Shop-Script в вашей установке): включение плагина, селекторы, исключения, плюс при фокусе, символ placeholder, использование телефонного каталога Inputmask, отладка.

Основные сценарии использования

  • Оформление заказа и корзина
    • Посетитель вводит номер в едином формате, меньше «ломаных» номеров из-за произвольных символов.
    • Маска не жёстко привязана к одной стране: сначала используется возможность библиотеки по телефонным alias, иначе — мягкая международная запасная маска.
  • Нестандартные поля в теме
    • Если поле телефона называется иначе, чем в дефолтных селекторах, добавьте свой CSS-селектор в настройках плагина.
    • Если маска попала на лишнее поле, добавьте для него исключение в блоке «Исключения» или пометьте поле классом js-inputmask-ignore / атрибутом data-inputmask-ignore="1".
  • Динамические формы и AJAX
    • Новые блоки формы, попавшие на страницу после загрузки, обрабатываются наблюдателем за DOM.
    • При использовании jQuery дополнительно выполняется переинициализация после завершения AJAX-запросов.

Технические детали (кратко)

  • На страницу выводятся минифицированные скрипты Inputmask, расширения для телефонов и файл с телефонными кодами, затем собственный скрипт плагина.
  • Конфигурация с админки передаётся в JavaScript через объект window.shopInputmaskPluginConfig.
  • Повторного подключения ассетов за один запрос страницы не происходит: плагин отслеживает, что скрипты уже вставлены.

Что можно настроить

  • Включение или выключение плагина целиком.
  • Строка CSS-селекторов полей телефона (несколько селекторов через запятую в формате, допустимом для querySelectorAll).
  • Селекторы исключений.
  • Автоподстановка «+» при фокусе.
  • Символ placeholder маски.
  • Включение или отключение попытки использовать телефонный каталог Inputmask (alias).
  • Режим отладки в консоли браузера.

Частые вопросы

  • Нужен ли jQuery? Нет. Плагин работает и без него; jQuery только помогает переинициализировать поля после некоторых AJAX-сценариев.
  • Почему маска «мягкая»? Потому что при недоступности телефонного каталога используется запасной шаблон «+» и набор цифр, без жёсткой привязки к одному национальному формату.
  • Можно ли отключить маску на витрине? Да, снимите галочку «Плагин включен» в настройках.
  • Куда смотреть, если что-то не срабатывает? Включите «Режим отладки» и откройте консоль разработчика в браузере; также проверьте, что тема выводит один из хуков frontend_head, frontend_footer или frontend_page.

Нужна помощь с настройкой под ваш магазин? Пишите на scc.lac@mail.ru или в Telegram @web_stu.

webictus

Все продукты этого разработчика