Запрещаем ввод любых символов кроме цифр в input
Очень часто для полей нужно запретить ввод любых символов кроме цифр. Это мы сейчас и сделаем при помощи библиотеки jQuery.
После того, как вы подключите jQuery, используйте такой код:
$(function() < $(document).on("change keyup input click", "input[type='text']", function() < if(this.value.match(/[^0-9]/g))< this.value = this.value.replace(/[^0-9]/g, ""); >; >); >);
Здесь мы на события change , keyup , input и click вешаем проверку по регулярному выражению. Таким образом, при любом действии над input пользователь сможет ввести в поле только цифры.
3.67 6 голосов
Материалы по теме
13 июля 2018 15:23:52
При разработке лендингов (Landing Page) довольно часто можно увидеть плавный скролл (прокрутку) к блокам или элементам страницы. Так же, практически на любом сайте можно встретить зафиксированную на странице кнопочку, при клике на которую пользователь быстро возвращается в начало страницы. Сейчас мы и рассмотрим как делаются такие навороты.
8 мая 2018 17:53:00
При разработке сайтов с использованием jQuery, на устройствах с операционной системой iOS (в частности браузер Safari), может возникнуть проблема с обработкой события click , из-за чего владельцам iPhone и iPad будет не доступна часть функционала сайта.
Курсы javascript
Пересмотрел кучу статей по валидации форм на JS, но нигде не нашел примера кода, который бы полностью блокировал ввод каких-либо символов кроме цифр в форму.
Буду благодарен за пример.
28.09.2017, 18:39
Регистрация: 01.12.2016
Сообщений: 3,650
Document
28.09.2017, 18:45
Регистрация: 01.12.2016
Сообщений: 3,650
вот самое простое решение
28.09.2017, 18:48
Регистрация: 01.12.2016
Сообщений: 3,650
Встроенное в инпут
28.09.2017, 19:10
Регистрация: 27.05.2010
Сообщений: 33,038
j0hnik,
лучше с проверкой , чтоб не перезаписывать, если нет \D или это лишнее?
Последний раз редактировалось рони, 28.09.2017 в 19:12 .
28.09.2017, 21:29
Регистрация: 01.12.2016
Сообщений: 3,650
Рони, в целях производительности?
28.09.2017, 21:43
Регистрация: 27.05.2010
Сообщений: 33,038
j0hnik,
да , и курсор как-то вернуть на место после замены, может нужно . но наверно нет смысла, середину числа если неправильно начать вводить курсор скакнёт в конец и что делать с точкой, если потребуется?
28.09.2017, 22:42
Регистрация: 01.12.2016
Сообщений: 3,650
Рони, в производительности не выиграем ) а на счет точки, вопрос к автору, если нужна, добавить не проблема
Курсы javascript
Ввожу числа, но затем, если ввести символ «e», поле полностью очищается. Странно, что перед проверкой условия, значение $el.value пустое только при вводе этого символа. И очистка поэтому собственно, и производится.
И как можно было бы скомпоновать условие на чистом JS, чтобы не пропускать символ «e», а также плюс и минус? И чтобы работало без бага очистки.
Последний раз редактировалось Янковиц, 26.02.2021 в 14:19 .
26.02.2021, 15:01
Регистрация: 17.11.2014
Сообщений: 403
Вот вариант, но он не предусматривает ситуацию вставки через ctrl+v.
" @keydown="if( ['+','-','e'].includes( $event.key ) ) $event.preventDefault()">
Как запретить ввод в поле input всего кроме цифр Leave a comment
Очень часто стоит задача когда необходимо запретить вводить в поле input любые символы, кроме цифр, например что бы уберечь пользователя от неверного указания количества покупаемого товара в интернет магазине. Для решения поставленной задачи есть несколько способов:
- Использовать поле input с типом number (это решение не всегда удобно)
- Использовать JavaScript или библиотеку jQuery к нему
Итак ниже код простой функции которая разрешит ввод в поле input только цифры: