Как я могу ограничить ввод текстовым полем, чтобы оно принимало только числа и десятичную точку?
javascript
html
Олово
источник
источник
isNaN(this.textbox.value)
??Ответы:
Это действительно работает!
источник
&& charCode != 190 && charCode != 110 && (charCode > 105 || charCode < 96)
Это то, что вы ищете?
Я надеюсь, что это помогает.
РЕДАКТИРОВАТЬ: я отредактировал свой пример выше, так что может быть только один период, которому предшествует хотя бы одна цифра и за которым следует хотя бы одна цифра.
источник
Принятое решение не является полным, так как вы можете ввести несколько ".", Например 24 .... 22..22. с небольшими изменениями он будет работать по назначению:
источник
ondrop="return false;" onpaste="return false;" oncontextmenu="return false;"
Кажется, достаточно добавить элемент вводаВот еще одно решение, которое позволяет использовать десятичные числа, а также ограничивает количество цифр после запятой до двух знаков после запятой.
источник
if
отсутствует буква "C" с большой буквы..
), тире (-
) и буквыe
при вставке или перетаскивании текста в поле. В элементе HTML также будут отображаться две стрелки для увеличения и уменьшения числа по умолчанию в Chrome. Кнопка уменьшения позволяет числу упасть ниже нуля.Все представленные здесь решения используют отдельные ключевые события. Это очень подвержено ошибкам, поскольку ввод также можно вводить с помощью copy'n'paste или drag'n'drop. Также некоторые решения ограничивают использование несимвольных ключей, например
ctrl+c
,Pos1
т. Д.Я предлагаю вместо того, чтобы проверять каждое нажатие клавиши, вы проверяете, соответствует ли результат вашим ожиданиям.
В
oninput
Событие запускается только после того, как что - то изменилось в текстовой области и перед тем , как оказаны.Вы можете расширить RegEx до любого числового формата, который хотите принять. Это намного проще в обслуживании и расширении, чем проверка нажатия одной клавиши.
источник
Вы ищете что-то подобное?
источник
Просто нужно применить этот метод в JQuery, и вы можете проверить свое текстовое поле, чтобы просто принимать число только с десятичным числом.
Пожалуйста, посмотрите рабочую демонстрацию здесь
источник
Для тех, кто спотыкается здесь, как я, вот написанная мной версия jQuery 1.10.2, которая очень хорошо работает для меня, хотя и требует больших ресурсов:
источник
Небольшая поправка к блестящему ответу @ rebisco для точной проверки десятичной дроби.
источник
Если вы хотите использовать значения с плавающей запятой,
Вот функция, которую я использую
источник
источник
источник
вот сценарий, который вам поможет:
источник
Предположим, что имя вашего поля текстового поля -
Income
Вызовите этот метод проверки, когда вам нужно проверить свое поле:
источник
Расширение ответа @ rebisco. приведенный ниже код позволит использовать в текстовом поле только числа и одиночный символ "." (точка).
источник
Лучшее решение
источник
Я решил заняться этим на
oninput
мероприятии, проблему вставки клавиатуры, вставки мыши и нажатия клавиш. Передайте true или false, чтобы указать десятичную или целочисленную проверку.По сути, это три этапа в трех одинарных вкладышах. Если вы не хотите усекать десятичные дроби, прокомментируйте третий шаг. На третьем шаге также можно внести поправки на округление.
источник
Начиная с ответа @rebisco:
Допускается только этот формат: 123123123 [.121213]
Демо здесь демо
источник
Надеюсь, это сработает для вас.
источник
Для меня работал следующий код
Поле ввода с событием "onkeypress" выглядит следующим образом
Функция isNumberKey выглядит следующим образом
источник
Я заметил, что для всех ответов, представленных здесь, что-то не работает, если мы выбираем какую-то часть текста в текстовом поле и пытаемся перезаписать эту часть. Итак, я изменил функцию, как показано ниже:
источник
Для десятичных чисел, а также для разрешения отрицательных чисел с двумя знаками после запятой ... Я изменил функцию на:
источник
альтернативный способ ограничить ввод текстовым полем, чтобы он принимал только числа, а десятичная точка - использовать javascript внутри ввода html. Это работает для меня:
--Принимает--
9
9,99
--Не принимать--
9,99,99
ABC
источник
Это разрешит только числовые значения и позволит вам поставить "." для десятичного числа.
источник
Это прекрасно работает.
источник
Лучшее и рабочее решение с демонстрацией примера Pure-Javascript Live: https://jsfiddle.net/manoj2010/ygkpa89o/
источник
Сам работаю над проблемой, и это то, что у меня есть. Это более-менее работает, но добавить минус потом невозможно из-за проверки нового значения. Также не позволяет использовать запятую в качестве разделителя тысяч, только десятичный разделитель.
Это не идеально, но может дать некоторые идеи.
Позволяет:
11 11 .245 (в контроллере, отформатированном при размытии до 1111.245)
11,44
-123,123
-1 014
0123 (форматируется при размытии до 123)
не позволяет:
! @ # $ / *
abc
11.11.1
11,11,1
.42
источник
источник
Я знаю, что это очень старый вопрос, но все же мы часто получаем такие требования. Есть много примеров, но многие из них кажутся слишком подробными или сложными для простого внедрения.
См. Https://jsfiddle.net/vibs2006/rn0fvxuk/ и улучшите его (если сможете). Он работает в IE, Firefox, Chrome и Edge Browser.
Вот рабочий код.
источник
Вы можете ограничить ввод значений пользователем, указав диапазон значений ASCII.
Пример : от 48 до 57 для числовых значений (от 0 до 9)
источник