Как сделать входной тег HTML только принимать числовые значения?
Мне нужно убедиться, что определенный поле принимает только цифры в качестве значения. Входные данные не являются частью формы. Следовательно, он не отправляется, поэтому проверка во время отправки не является опцией. Я хочу, чтобы пользователь не мог вводить какие-либо символы, кроме чисел.
есть ли аккуратный способ достичь этого?
21 ответов
можно использовать номер входного типа HTML5 ограничить только количество записей:
это будет работать только в браузере жалоб HTML5. Убедитесь, что тип документа html:
см. также https://github.com/jonstipe/number-polyfill для прозрачной поддержки в старых браузерах.
для общего назначения вы можете иметь проверку JS, как показано ниже:
если вы хотите разрешить десятичные дроби заменить» если условие » следующим:
вы также можете использовать атрибут pattern в html5:
хотя, если ваш doctype не html тогда, я думаю, вам нужно будет использовать javascript/jquery.
пожалуйста, попробуйте этот код вместе с самим полем ввода
он будет работать нормально.
обратите внимание, что вход type=»number» тег поддерживается только в новых браузерах.
для firefox вы можете проверить ввод с помощью javascript:
обновление 2018-03-12: поддержка браузера намного лучше, теперь это поддерживается следующим:
onkeyup триггеры, когда ключ отпущен.
isNaN(parseFloat(value))? проверяет, не является ли входное значение числом.
если это не число, значение равно 1000 : если это число, значение устанавливается в значение.
Примечание: по какой-то причине он работает только с type=»number»
чтобы сделать его еще более увлекательным, вы также можете иметь границы:
Я боролся с этим немного. Многие решения здесь и в других местах казались сложными. Это решение использует jQuery / javascript наряду с HTML.
в моем случае я отслеживал небольшие количества с минимальным значением 1, следовательно, min= » 1 » во входном теге и abc = 1 в проверке isNaN (). Для положительных только чисел вы можете изменить эти значения на 0 и даже просто удалить min=»1″ из тега ввода, чтобы разрешить отрицательные числа.
также это работает для нескольких ящиков (и может сэкономить вам время загрузки по отдельности по id), просто добавьте класс «validateNumber», где это необходимо.
или вы можете написать его в сложную бу удобным способом:
Примечание: кросс-браузер и регулярное выражение в литерале.
Если вы можете использовать HTML5, вы можете сделать Если нет, вам придется либо сделать это через javascript, как вы сказали, он не будет отправлен, чтобы сделать это из codebehind.
P. S не тестировал код, но он должен быть более или менее правильным, если не проверять опечатки: D Вы можете добавить еще несколько вещей, например, что делать, если строка равна null или пуста и т. д. Также вы можете сделать это быстрее: D
Позволить вводить в input только числа?
Помощь в написании контрольных, курсовых и дипломных работ здесь.

есть input type = text, как сделать чтобы в него можно было вводить только цифры?
Как позволить вводить только определенные символы в textarea
Нужно разрешить только ввод латинских букв, чтобы все остальное игнорировалось(цифры, знаки.

Доброго времени суток. В общем нужно в input type=text разрешить ввод только английских букв (т.е.

Доброго времени суток. В общем нужно в input type=text разрешить ввод только английских букв (т.е.
Но не пашет, по отзывам, в FF, да и 0 пропускает.
Регулярка будет выглядеть так:
здесь сложность не в регулярках,
а в отлавливании события ввода текста (его ведь можно ввести не только с клавы, но и мышью, и через меню)
в разных браузерах это по разному делается
кроме того, попутно появляется задача установки курсора в текстовом поле на его место, если вдруг юзер в середину числа попытается «воткнуть» букву
а если же просто (только с клавы, да и хрен с ним, с курсором), то
Кстати, если верить htmlbook-у, то на текущий момент поддержка у FF есть далеко не для всех нововведенных типов, зато имеющиеся, пусть среди них и нет таких «крутых» как «color«, но те что есть реально нужные и те, с которыми иногда приходится возиться, составляя оптимальный регэксп: «email«, «tel«, «url«.
Добавлено через 5 минут
мух от котлет отделите
так вот. обрабатывать replace () может чем угодно и как угодно отловленное
Для начала введите несколько символов и попробуйте угнанть каретку в середину текста клавишами со стрелками [←] и [→]. Если получится, я чем я сомневаюсь (особенно в IE), то теперь в середине текста попробуйте вписать несколько цифр. После этого Вам, возможно, потребуется успокоительное.



