Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.01.2019, 13:00
Профессор
Отправить личное сообщение для Igorsrt Посмотреть профиль Найти все сообщения от Igorsrt
 
Регистрация: 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>
Ответить с цитированием
  #2 (permalink)  
Старый 30.01.2019, 13:58
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

"Маска телефона II" ?

А телефона 8 899 ... не может быть?
Ответить с цитированием
  #3 (permalink)  
Старый 30.01.2019, 14:19
Профессор
Отправить личное сообщение для Igorsrt Посмотреть профиль Найти все сообщения от Igorsrt
 
Регистрация: 21.02.2016
Сообщений: 271

мне почему-то кажется, что все телефоны на 9 начинаются... но если не прав, то поправьте. Как тогда быть?
Ответить с цитированием
  #4 (permalink)  
Старый 30.01.2019, 14:30
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Igorsrt
мне почему-то кажется
Когда кажется, тогда крестятся

http://www.1sn.ru/25874.html
Ответить с цитированием
  #5 (permalink)  
Старый 30.01.2019, 14:33
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Igorsrt
Как тогда быть
Выбрасывайте плагин, пусть вводят как хотят и как привыкли. Пишите свой обработчик, задача которого просто проверять чтобы было 11 цифр в итоге и в начале 7 (с плюсом или нет, не важно) или 8. А отформатировать телефон при выводе на страницах можно как вашей душе угодно, это не есть проблема.
Ответить с цитированием
  #6 (permalink)  
Старый 30.01.2019, 14:41
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,791

Сообщение от laimas
Выбрасывайте плагин, пусть вводят как хотят и как привыкли.
А почему вы не рассматриваете вариант с банальным изменением маски на тот, к примеру, что ниже?
9 (999) 999-99-99
Ответить с цитированием
  #7 (permalink)  
Старый 30.01.2019, 14:47
Профессор
Отправить личное сообщение для Igorsrt Посмотреть профиль Найти все сообщения от Igorsrt
 
Регистрация: 21.02.2016
Сообщений: 271

не знаю, мне почему-то идея с удалением восьмерки кажется прикольной (пусть у "горячих линий" телефон на 8 начинается, но с них же обратных звонков не заказывают обычно)...
ну или какой обработчик, что бы он позволял и 10 и 11 цифр ввести
Ответить с цитированием
  #8 (permalink)  
Старый 30.01.2019, 14:51
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от Nexus
А почему вы не рассматриваете вариант с банальным изменением маски на тот, к примеру, что ниже?
Первую серию эпопеи прочтите. Насколько можно судить, проблема не в первой цифре маски, которая уже набрана, а в том, что ее вводят в позицию второй цифры. Если плагин маски позволяет вводить все цифры номера, тогда я не понимаю проблемы.
Ответить с цитированием
  #9 (permalink)  
Старый 30.01.2019, 15:01
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 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.
Ответить с цитированием
  #10 (permalink)  
Старый 30.01.2019, 15:10
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Сообщение от Igorsrt
пусть у "горячих линий" телефон на 8 начинается
Не только у горячих.
Например, телефонный код Санкт-Петербурга +7 812, Самары +7 846 и т.п.
Или вы предполагаете, что могут указывать только номера сотовых телефонов?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка поля для телефона. ureech Элементы интерфейса 0 20.04.2016 21:17
Проверка введения данных и отображение ошибки phototer Элементы интерфейса 2 22.06.2013 20:14
Проверка поля номера телефона iskander83 Общие вопросы Javascript 2 14.05.2013 15:22
Проверка номера телефона при помощи регулярок Amateur Javascript под браузер 3 20.10.2011 13:34
Проверка поля Номер телефона zhuzha Общие вопросы Javascript 7 12.05.2010 16:40