30.01.2019, 13:00
|
Профессор
|
|
Регистрация: 21.02.2016
Сообщений: 271
|
|
Дополнительная проверка введения телефона
Здравствуйте!
На сайте установлен скрипт mask-input с форматом "+7 (999) 999-99-99", но клиенты все равно уперто вводят свою восьмерку в начало телефонного номера. Можно ли сделать, что бы эта "8" игнорировалась (удалялась), если ее вставляют в начало номера?
<form class="form-send" data-yaid="zakaz_form">
<h2>Заказать звонок</h2>
<h3>Наш специалист свяжется с вами в ближайшее время</h3>
<input type="text" name="name" placeholder="Ваше имя*" class="required">
<input type="text" name="phone" placeholder="Ваш телефон*" class="required">
<input type="submit" value="Заказать звонок" class="btn" return="" true;"="">
<input type="hidden" name="form" value="Заказ звонка">
<label style="display: block;font-size: 12px;text-align: center;margin: 20px 0;" class="accept">
<input type="checkbox" name="accept">
Нажимая на кнопку, вы даете <a target="_blank" href="/docs/policy.pdf">согласие</a> на обработку своих персональных данных
</label>
</form>
|
|
30.01.2019, 13:58
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
"Маска телефона II" ?
А телефона 8 899 ... не может быть?
|
|
30.01.2019, 14:19
|
Профессор
|
|
Регистрация: 21.02.2016
Сообщений: 271
|
|
мне почему-то кажется, что все телефоны на 9 начинаются... но если не прав, то поправьте. Как тогда быть?
|
|
30.01.2019, 14:30
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от Igorsrt
|
мне почему-то кажется
|
Когда кажется, тогда крестятся
http://www.1sn.ru/25874.html
|
|
30.01.2019, 14:33
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от Igorsrt
|
Как тогда быть
|
Выбрасывайте плагин, пусть вводят как хотят и как привыкли. Пишите свой обработчик, задача которого просто проверять чтобы было 11 цифр в итоге и в начале 7 (с плюсом или нет, не важно) или 8. А отформатировать телефон при выводе на страницах можно как вашей душе угодно, это не есть проблема.
|
|
30.01.2019, 14:41
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,791
|
|
Сообщение от laimas
|
Выбрасывайте плагин, пусть вводят как хотят и как привыкли.
|
А почему вы не рассматриваете вариант с банальным изменением маски на тот, к примеру, что ниже?
9 (999) 999-99-99
|
|
30.01.2019, 14:47
|
Профессор
|
|
Регистрация: 21.02.2016
Сообщений: 271
|
|
не знаю, мне почему-то идея с удалением восьмерки кажется прикольной (пусть у "горячих линий" телефон на 8 начинается, но с них же обратных звонков не заказывают обычно)...
ну или какой обработчик, что бы он позволял и 10 и 11 цифр ввести
|
|
30.01.2019, 14:51
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от Nexus
|
А почему вы не рассматриваете вариант с банальным изменением маски на тот, к примеру, что ниже?
|
Первую серию эпопеи прочтите. Насколько можно судить, проблема не в первой цифре маски, которая уже набрана, а в том, что ее вводят в позицию второй цифры. Если плагин маски позволяет вводить все цифры номера, тогда я не понимаю проблемы.
|
|
30.01.2019, 15:01
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Сообщение от Igorsrt
|
обработчик, что бы он позволял и 10 и 11 цифр ввести
|
<input name="phone" />
<script>
document.querySelector('[name="phone"]').addEventListener('input', function() {
this.value = this.value.trim().replace(/^[^\+78]/, '')
})
</script>
То есть, если первый символ, это не + или 7, или 8, то удаляется. А далее ввод, а вводить кто как любит, кто через пробелы, кто через дефисы, кто со скобками, кто без, них, а проще просто цифры. Перед тем как отправлять форму, это поле можно проверить, удалив из его значения все не цифры - должно быть 11 цифр, иначе генерируем ошибку.
PS. Нет, такой шаблон не пойдет, оно позволяет после + ввести любое, надо подумать.
Последний раз редактировалось laimas, 30.01.2019 в 15:16.
|
|
30.01.2019, 15:10
|
Профессор
|
|
Регистрация: 27.11.2015
Сообщений: 2,899
|
|
Сообщение от Igorsrt
|
пусть у "горячих линий" телефон на 8 начинается
|
Не только у горячих.
Например, телефонный код Санкт-Петербурга +7 812, Самары +7 846 и т.п.
Или вы предполагаете, что могут указывать только номера сотовых телефонов?
|
|
|
|