Введите поисковый запрос

Запрет на ввод 8 в маске input

при вводе оформление заказа в поле ввода номера телефона через маску +7 (999) 999-99-99 некоторые пользователи игнорировали что в полу уже присутствует +7 и начинали вводить номер телефона с 8.

Проблема: при вводе оформление заказа в поле ввода номера телефона через маску +7 (999) 999-99-99 некоторые пользователи игнорировали что в полу уже присутствует +7 и начинали вводить номер телефона с 8. 

Решение: Запрет на ввод первой цифры 8

Реализация

Шаблон компонента /templates/ВАШ_ШАБЛОН/components/bitrix/sale.order.ajax/ файл template.php

Добавляем скрипт: 
https://cdnjs.cloudflare.com/ajax/libs/imask/6.0.3/imask.min.js

И добавляем настройки:


const phoneEl = document.getElementById('soa-property-3');
let phoneMask = IMask(phoneEl, {
  
  mask: '{+7} (#00) 000 0000',
  
  definitions: {
    '#': /[012345679]/
  },
  
  lazy: false,
  
  placeholderChar: ' '
  
});


Где soa-property-3 это ID моего поля ввода, у вас может естественно отличаться



Пример в жизни:



Ваша оценка:

Комментарии (2)

Андрей
23.08.2023

Плохой вариант. В России есть регионы и города, у которых код начинается с "8". Питер, Самара, Нижний Новгород, Ставрополь. Тут скорее нужно отслеживать какая 3 по счёту будет цифра (или вторая введённая пользователем). В России нет кода (+789) и вот тут можно попробовать затереть первую "8".

Admin ответ на комментарий Андрей
23.08.2023

Как вариант. Но на практике работает отлично. Кстати, недавно видел такое решение в нескольких банковский приложениях. Именно 8 он не дает напечатать или вовсе удаляет ее


Оставить заявку
 
 

Денис Бунаков

C 2012 года являюсь Битрикс Программистом.
Программист 1С:Битрикс – это веб-разработчик с узким профилем, который работает непосредственно с продукцией от компании 1С.