Ограниченные символы в input при вводе

387
08 сентября 2017, 19:55

Добрый День! Столкнулся с проблемой ограничения на ввод символов в поле input для номера телефона. Имею скрипт, который позволяет ввести только цифры в данное поле, но есть ли возможность сделать допустимым не только цифры, а символы:

+, - , (space), ()

Заранее спасибо, свой код прикрепил ниже:

function isNumberKey(evt) { 
  var charCode = (evt.which) ? evt.which : event.keyCode 
  if (charCode > 31 && (charCode < 48 || charCode > 57)) 
    return false; 
  return true; 
};
Enter you number: 
<input v-model="phone" type="text" maxlength="22" onkeyup="validate(this)" v-validate="'required|alpha_spaces'" data-vv-as="Telefono" onkeypress="return isNumberKey(event)" :class="{'input': true, 'is-danger': errors.has('phone') }">

Answer 1

Ссылайтесь на ASCII таблицу

function isNumberKey(evt) { 
   
  var charCode = (evt.which) ? evt.which : event.keyCode 
  if (charCode != 32 && charCode != 40 && charCode != 41 && charCode != 43 && charCode != 45 && charCode < 48 || charCode > 57)  
    return false; 
  return true; 
};
Enter you number: 
<input v-model="phone" type="text" maxlength="22" onkeyup="validate(this)" v-validate="'required|alpha_spaces'" data-vv-as="Telefono" onkeypress="return isNumberKey(event)" :class="{'input': true, 'is-danger': errors.has('phone') }">

Answer 2

Возьмите лучше уже готовый для этого плагин maskedinput. По умолчанию он позволяет задавать маски для ввода символы/цифры/символы+цифры, но можно задавать и свои с помощью $.mask.definitions[e] = '[0-9a-zA-Z+-]' и тут уже указываете допустимые символы. А использовать будете в виде $('.mask').mask('+7 (eee) eee-ee-ee') Хотя я для ввода телефона использую просто маску +7 (999) 999-99-99 где на месте 9ок позволяет указывать любые цифры

READ ALSO
Почему Owl Carousel не подключается?

Почему Owl Carousel не подключается?

Почему Owl Carousel не работает?

303
Пишет ошибку. Вроде все правильно : [требует правки]

Пишет ошибку. Вроде все правильно : [требует правки]

Пишет ошибкуВроде все правильно : /

257
Как получить процент от BigInteger?

Как получить процент от BigInteger?

Был вариант с ulong и decimal (100M), работал вполне корректноПотом пришлось увеличить числовой диапазон до BigInteger, и встала проблема с подсчетом процентов

282