Разрешаем только ввод цифр в поле input
Часто возникает задача запрета ввода не цифровых значений в поле <input>. В этом материале разберем реализацию данного механизма на JavaScript.
На мой взгляд, самый простой способ воспользоваться обработчиком события .keydown() - в jQuery или прослушивать событие keydown. Итак, предположим у нас есть текстовое поле с id = «only_num».
<input type="text" id="only_num" value="" />
Алгоритм проверки будет такой
- При нажатии клавиши на клавиатуре ( событие .keydown() ) будем получать keyCode (возвращает код нажатой клавиши) и анализировать его;
- Для цифр основной клавиатуры keyCode принимает значения от 48 (клавиша 0) до 57 (клавиша 9);
- Для цифр дополнительной клавиатуры ( Num-клавиатуры ) keyCode принимает значения от 96 (клавиша 0) до 105 (клавиша 9);
- Так же разрешим:
- удалять символы ( клавиша Del ) keyCode == 46;
- переключаться клавишей Tab между полями keyCode == 9;
- нажимать Backspace keyCode == 8;
- нажимать Esc keyCode == 27;
- выделять текст сочетанием Ctrl + A — вот тут клавиша A имеет код keyCode == 65, а событие зажатого Ctrl ctrlKey должно быть строго истина, т.е. получаем условие — ( event.keyCode == 65 && event.ctrlKey === true );
- разрешим клавишу Home keyCode == 36;
- разрешим клавишу End keyCode == 35;
- разрешим клавишу влево keyCode == 37;
- разрешим клавишу вправо keyCode == 39;
Последние четыре требования можно объединить в одно — ( event.keyCode >= 35 && event.keyCode <= 39 ), правда в этом случае мы разрешаем еще нажатие клавиши вверх keyCode == 38, но, думаю это не критично, а код получится красивее.
Разрешаем ввод только цифр в поле input на JavaScript
const input = document.getElementById('only_num');
input.addEventListener('keydown', function(event) {
// Разрешаем: backspace, delete, tab и escape
if ( event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 27 ||
// Разрешаем: Ctrl+A
(event.keyCode == 65 && event.ctrlKey === true) ||
// Разрешаем: home, end, влево, вправо
(event.keyCode >= 35 && event.keyCode <= 39)) {
// Ничего не делаем
return;
} else {
// Запрещаем все, кроме цифр на основной клавиатуре, а так же Num-клавиатуре
if ((event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105 )) {
event.preventDefault();
}
}
});
Разрешаем ввод только цифр в поле input на jQuery
$(document).ready(function() {
$("#only_num").keydown(function(event) {
// Разрешаем: backspace, delete, tab и escape
if ( event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 27 ||
// Разрешаем: Ctrl+A
(event.keyCode == 65 && event.ctrlKey === true) ||
// Разрешаем: home, end, влево, вправо
(event.keyCode >= 35 && event.keyCode <= 39)) {
// Ничего не делаем
return;
} else {
// Запрещаем все, кроме цифр на основной клавиатуре, а так же Num-клавиатуре
if ((event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105 )) {
event.preventDefault();
}
}
});
});
Помощь сайту
ЮMoney:
4100 1180 7209 833
Карта Сбербанк:
2202 2080 6183 7127
Методы массивов в JavaScript: Исчерпывающий гид для разработчиков
Чистый код на JavaScript, 5 рекомендаций которые улучшат Ваш код.
Обработка ошибок в JavaScript. 10 примеров использования конструкции try...catch
Семь необходимых операторов RxJS
Зачем нам нужен TypeScript?
Как исправить ошибку «RangeError: Invalid time value» при вызове метода toISOString даты JavaScript?
Повышение уровня мастерства в JavaScript ES6
Введение в прототипы JavaScript
Сравнение методов require() и import() в JavaScript
Javascript array шпаргалка
Вырезаем изображение с помощью jQuery и PHP
Каррирование в JavaScript
Использование HTML5-элемента audio в JavaScript
Склонение окончаний в словах на Javascript
JavaScript - отслеживание изменения ориентации на мобильных устройствах
Четыре способа плавного скролла до элемента на JavaScript
Разрешаем только ввод цифр в поле input
Вывод последнего дня текущего месяца на Javascript
Понимание синхронного и асинхронного JavaScript с Async/Await
Youtube несколько видео на странице и стоп проигрывания предыдущего видео.
Семь важных функций JavaScript
Что такое ECMAScript и чем это отличается от JavaScript
Контекст выполнения функции в JavaScript
Область видимости в JavaScript
Замыкания в JavaScript
This в JavaScript
Объекты в JavaScript
Определение платформы устройства на javascript
Управление версиями Node.js с помощью nvm в Windows
Три способа понять промисы
Выделяем текущий пункт меню отдельным стилем на jQuery
Восемь типов данных и typeof
Собственные социальные share-кнопки
Как проверить с помощью jQuery и Javascript состояние checkbox
Велосипеды на Javascript и jQuery
Видео самоучитель jQuery от Envato
AJAX и JavaScript. Загрузка контента без перезагрузки страницы
Плавная кнопка "Наверх" на jQuery
Как отключить ввод текста по переключателю disabled
Как избежать повторной загрузки контента Jquery + Ajax + JSON
JavaScript and JQuery 1.8.3 решение проблемы с функцией attr() на примере генератора пароля
Возможно, вам будет интересно
Javascript array шпаргалка
Переменные в Javascript позволяют хранить только одни данные за раз. Однако, учитывая, что часто бывает полезно манипулировать большим количеством данных, концепции переменной иногда недостаточно, потому что становится трудно управлять большим количеством различных переменных.
Объекты в JavaScript
В статье рассмотрены базовые понятия, связанные с объектами в JavaScript: определение объектов, создание объектов, базовые операции с объектами
Как исправить ошибку «RangeError: Invalid time value» при вызове метода toISOString даты JavaScript?
В этой статье мы рассмотрим, как исправить ошибку «RangeError: Invalid time value» при вызове toISOString метода даты JavaScript.
Восемь типов данных и typeof
В JavaScript существует несколько основных типов данных. В этой статье мы получим о них общее представление, а позже, в соответствующих главах подробно познакомимся с использованием каждого типа в отдельности.