Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Маска телефона (https://javascript.ru/forum/dom-window/76632-maska-telefona.html)

Igorsrt 28.01.2019 12:17

Маска телефона
 
Здравствуйте!
На сайте установлен скрипт mask-input с форматом "+7 (999) 999-99-99", но клиенты все равно уперто вводят свою восьмерку в начало телефонного номера. Можно ли сделать, что бы эта "8" игнорировалась, если ее вставляют в начало номера?

Dilettante_Pro 28.01.2019 13:42

<input type="text">
<script>
  document.querySelector('input').oninput = function() {
     var str = this.value;
     if(str.indexOf('8') == 0) {
        str = str.replace('8','+7');
        this.value = str;
     } 
  }
</script>

Но вообще-то нужно смотреть ваш скрипт mask-input

Igorsrt 28.01.2019 13:56

вот так это выглядит:
<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>


а скрипт стандартный https://drive.google.com/open?id=12a...fs9DxsoLHuOhUJ

Dilettante_Pro 28.01.2019 14:05

А где скрипт mask-input?

Igorsrt 28.01.2019 14:11

https://drive.google.com/open?id=12a...fs9DxsoLHuOhUJ
ну и сама маска:
// маска
	$("input[name=phone]").mask("+7 (999) 999-99-99");

Dilettante_Pro 28.01.2019 14:42

Не знаю, что у вас за плагин, но вот пример
<input type="text" name="phone" placeholder="Ваш телефон*" class="required">

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script type="text/javascript" src = "https://snipp.ru/uploads/files/jquery.maskedinput.min.js" ></script>

<script>
$("input[name=phone]").mask("+7 (999) 999-99-99");

</script>

Igorsrt 28.01.2019 15:40

я извиняюсь, а в чем суть?
я попросил помощи, что бы восьмерка не вводилась первой цифрой (если вдруг кто-то ее забьет в маску)?

Nexus 28.01.2019 15:46

Igorsrt, разрешите восьмерку вводить и не парьтесь, т.е.
$('.mask-phone').mask('+9 (999) 999-99-99');

Igorsrt 28.01.2019 15:54

Цитата:

Сообщение от Nexus (Сообщение 502839)
Igorsrt, разрешите восьмерку вводить и не парьтесь, т.е.
$('.mask-phone').mask('+9 (999) 999-99-99');

сорри, что-то я туплю сегодня... в чем здесь решение?
Проблема в том, что люди забивают номер "по привычке" вместе с восьмеркой и последняя цифра, соответственно не сохраняется (так как в маске всего 10 цифр) - перезванивать не понятно куда

Nexus 28.01.2019 16:08

Цитата:

Сообщение от Igorsrt
сорри, что-то я туплю сегодня... в чем здесь решение?

перед примером кода черным по белому написано, разве нет?


Часовой пояс GMT +3, время: 02:40.