Как разрешить некоторые символы у input type NUMBER?

Допустим есть форма input type number. Она по дефолту запрещает ввод всего кроме цифр и на мобилах удобно -появляется только циферная клавиатура.

Можно ли как-то реализовать чтобы можно скобки ( ), плюсы+, пробелы вводить? И при этом чтобы на сотках появлялась только циферная клавиатура. Спасибо
  • Вопрос задан
  • 582 просмотра
Пригласить эксперта
Ответы на вопрос 3
@vintage
Тут по надо использовать type=tel htmlbook.ru/samhtml5/formy/pole-dlya-telefona
Ответ написан
Комментировать
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
<input type="text" pattern="[0-9]*" />
Ответ написан
ddd_poka
@ddd_poka
разрабатываю мобильные приложения
Простой код на чистом js, с добавлением скобок и " - ".
Если надо менять регион (+7), добавьте ее в переменную.
<input id="input_certif_user_phone" type="tel" placeholder="Телефон" onkeyup="phone_Function_certif()">


function phone_Function_certif() {

  var ph_num = document.getElementById('input_certif_user_phone');

  var ph_val = ph_num.value;
  var ph_lenght = ph_num.value.length;
  var current_value;

  if (ph_lenght === 1){
    document.getElementById('input_certif_user_phone').value = '+7 (' + ph_val;
  }

  if (ph_lenght === 4){
    document.getElementById('input_certif_user_phone').value = '';
  }

  if (ph_lenght === 7){
    current_value =  ph_val + ') ';
    document.getElementById('input_certif_user_phone').value = current_value;
  }
  if (ph_lenght === 8){
    current_value =  ph_val.substring(0, ph_val.length-2);
    document.getElementById('input_certif_user_phone').value = current_value;
  }
  if (ph_lenght === 12){
    current_value =  ph_val + ' - ';
    document.getElementById('input_certif_user_phone').value = current_value;
  }

  if (ph_lenght === 14){
    current_value =  ph_val.substring(0, ph_val.length-3);
    document.getElementById('input_certif_user_phone').value = current_value;
  }

  if (ph_lenght === 17) {
    current_value = ph_val + ' - ';
    document.getElementById('input_certif_user_phone').value = current_value;
  }


  if (ph_lenght === 19){
    current_value =  ph_val.substring(0, ph_val.length-3);
    document.getElementById('input_certif_user_phone').value = current_value;
  }

  if (ph_lenght > 22){
    current_value =  ph_val.substring(0, ph_val.length-1);
    document.getElementById('input_certif_user_phone').value = current_value;
  }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы