Я создаю веб-страницу, где у меня есть поле ввода текста, в котором я хочу разрешить только числовые символы, такие как (0,1,2,3,4,5 ... 9) 0-9.
Как я могу сделать это с помощью jQuery?
jquery
html
validation
numeric
Прашант
источник
источник
Ответы:
Примечание. Это обновленный ответ. Комментарии ниже относятся к старой версии, которая путалась с кодами клавиш.
JQuery
Попробуйте сами на JSFiddle .
Для этого нет собственной реализации jQuery, но вы можете отфильтровать входные значения текста
<input>
с помощью следующегоinputFilter
плагина (поддерживает Копирование + Вставка, Перетаскивание + Отбрасывание, сочетания клавиш, операции с контекстным меню, неиспользуемые клавиши, положение каретки, другое раскладки клавиатуры и все браузеры начиная с IE 9 ):Теперь вы можете использовать
inputFilter
плагин для установки входного фильтра:Посмотрите демонстрацию JSFiddle для большего количества примеров входного фильтра. Также обратите внимание, что вы все равно должны выполнить проверку на стороне сервера!
Чистый JavaScript (без jQuery)
JQuery на самом деле не нужен для этого, вы можете сделать то же самое с чистым JavaScript. Смотрите этот ответ .
HTML 5
HTML 5 имеет собственное решение с
<input type="number">
(см. Спецификацию ), но обратите внимание, что поддержка браузера варьируется:step
,min
иmax
атрибуты.e
иE
в поле. Также посмотрите этот вопрос .Попробуйте сами на w3schools.com .
источник
Вот функция, которую я использую:
Затем вы можете прикрепить его к своему контролю, выполнив:
источник
return this.each(function()
?each
отreturn this.each(function()
должен разрешить несколько объектов, как сказал HaggleLad, аreturn
часть должна вернуть объект jQuery обратно вызывающей стороне, чтобы разрешить цепочки, такие как$("input[type='text'").ForceNumericOnly().show()
В линию:
Ненавязчивый стиль (с jQuery):
источник
onkeyup="if (/\D/g.test(this.value)) this.value = this.value.replace(/\D/g,'')"
./[^0-9]|^0+(?!$)/g
предотвратить ведущие серии ноль.Вы можете просто использовать простое регулярное выражение JavaScript для проверки чисто числовых символов:
Это возвращает истину, если ввод числовой или ложь, если нет.
или для кода события, просто используйте ниже:
источник
Вы можете использовать на входном событии, как это:
Но что это за кодовая привилегия?
источник
decimal
промежуточным0.0
до24.0
я не могу позволить ему войти в.
this.value = Number(this.value.replace(/\D/g, ''));
Коротко и мило - даже если это никогда не привлечет большого внимания после 30+ ответов;)
источник
Используйте функцию JavaScript isNaN ,
if (isNaN (document.getElementById ('inputid'). val ()))Обновление: и здесь хорошая статья, рассказывающая об этом, но использующая jQuery: ограничение ввода в текстовых полях HTML числовыми значениями
источник
document.getElementById('inputid').val()
чувак .. это все еще JQuery..val()
это вещь JQuery. использование.value
isNaN
одного - плохая идея из-за приведения типов JavaScript.decimal
промежуточным0.0
до24.0
я не могу позволить ему войти в.
Источник: http://snipt.net/GerryEng/jquery-making-textfield-only-accept-numeric-values
источник
Я использую это в нашем внутреннем общем файле JS. Я просто добавляю класс к любому входу, который нуждается в таком поведении.
источник
Проще для меня это
источник
this.value.replace(/[^0-9\.]/g,'');
чтобы включить требования OP 0-9Почему так сложно? Вам даже не нужен jQuery, потому что есть атрибут шаблона HTML5:
Круто то, что он выводит цифровую клавиатуру на мобильные устройства, что намного лучше, чем использование jQuery.
источник
Вы можете сделать то же самое, используя это очень простое решение
Я ссылался на эту ссылку для решения. Работает отлично !!!
источник
decimal
промежуточным0.0
до24.0
я не могу позволить ему войти в.
Вы можете попробовать ввести номер HTML5 :
Для несовместимых браузеров существуют запасные варианты Modernizr и Webforms2 .
источник
Атрибут pattern в HTML5 определяет регулярное выражение, по которому проверяется значение элемента.
Примечание. Атрибут pattern работает со следующими типами ввода: текст, поиск, URL, телефон, электронная почта и пароль.
[0-9] можно заменить любым условием регулярного выражения.
{1,3} представляет минимум 1 и максимум 3 цифры.
источник
decimal
промежуточным0.0
до24.0
я не могу позволить ему войти в.
Что-то довольно простое, используя jQuery.validate
источник
function suppressNonNumericInput (event) {
источник
decimal
промежуточным0.0
до24.0
я не могу позволить ему войти в.
Я пришел к очень хорошему и простому решению, которое не мешает пользователю выбирать текст или вставлять копии, как это делают другие решения. JQuery стиль :)
источник
Вы можете использовать эту функцию JavaScript:
И вы можете привязать его к вашему текстовому полю следующим образом:
Я использую выше в производстве, и он отлично работает, и это кросс-браузер. Кроме того, он не зависит от jQuery, поэтому вы можете привязать его к текстовому полю с помощью встроенного JavaScript:
источник
Я думаю, что это поможет всем
источник
if(event.which!=8 && event.which!=0 && (event.which<48 || event.which>57) && (event.which<96 || event.which>105)) return;
Я написал свой, основываясь на посте @ user261922, немного измененном, чтобы вы могли выбрать все, вкладку и обрабатывать несколько полей «только для чисел» на одной странице.
источник
Вот быстрое решение, которое я создал некоторое время назад. Вы можете прочитать больше об этом в моей статье:
http://ajax911.com/numbers-numeric-field-jquery/
источник
Вы хотели бы разрешить вкладку:
источник
Вот ответ, который использует фабрику jQuery UI Widget. Вы можете настроить, какие символы разрешены легко.
Это позволило бы цифры, знаки числа и суммы в долларах.
источник
Это кажется неразрушимым.
источник
Необходимо убедиться, что у вас есть цифровая клавиатура и клавиша табуляции тоже работает
источник
Я хотел немного помочь, и я сделал свою версию,
onlyNumbers
функцию ...Просто добавьте в тег ввода "... input ... id =" price "onkeydown =" return onlyNumbers (event) "..." и все готово;)
источник
Я тоже хотел бы ответить :)
Вот и все ... только цифры. :) Почти это может работать только с «размытием», но ...
источник
Простой способ проверить, является ли введенное значение числовым:
источник
Просто нужно применить этот метод в Jquery, и вы можете проверить свое текстовое поле, чтобы просто принять только номер.
Попробуйте это решение здесь
источник
Вы можете попробовать ввести номер HTML5:
Этот элемент тега ввода теперь будет принимать значение только от 0 до 9, поскольку атрибут min установлен в 0, а атрибут max установлен в 9.
Для получения дополнительной информации посетите http://www.w3schools.com/html/html_form_input_types.asp
источник