@newaitix

Запретить ввод/вставку любых символов кроме цифр.?

document.getElementById('tel').onkeydown=function(ev){
	if(!/\d/.test(ev.key)){
		ev.preventDefault();
		return;
	}
}

Сразу подумал о том что человек может тупо зажать кнопку и будут вводиться буквы если мы применим oninput или onkeyup. Поэтому вариант только такой.
Но есть недостатки:
- Когда фокус в форме то нельзя обновить страницу нажатием f5,
- нельзя вставить данные через ctrl+v.
Как быть в этом случае ?
  • Вопрос задан
  • 547 просмотров
Решения вопроса 2
werty1001
@werty1001
undefined
Как вариант:
document.getElementById( 'tel' ).oninput = function(e) {

	var cursor = this.selectionStart, pattern = /\D/g;

		if ( this.value.match( pattern ) ) {

			alert( 'Только цифры' );

			this.value = this.value.replace( pattern, '' );

			cursor--;

		}

		this.selectionEnd = cursor;

}
Ответ написан
VoidVolker
@VoidVolker Куратор тега JavaScript
Dark side eye. А у нас печеньки! А у вас?
Пропускать F5, Ctrl+*
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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