Есть ли тип ввода float в HTML5?
согласно html5.org, атрибут значения входного типа "number", если он указан и не пуст, должен иметь значение, которое является допустимым числом с плавающей запятой."
но это просто (в последней версии Chrome, во всяком случае), элемент управления "updown" с целыми числами, а не плавает:
<input type="number" id="totalAmt"></input>есть ли элемент ввода с плавающей запятой, родной для HTML5, или способ заставить тип ввода числа работать с поплавками, а не с ints? Или я должен прибегнуть к плагину jQuery UI?
7 ответов:
The
numberтипаstepзначение, управляющее допустимыми числами (вместе сmaxиmin), который по умолчанию1. Это значение также используется реализациями для кнопок stepper (т. е. нажатие вверх увеличивается наstep).просто измените это значение на то,что подходит. Для денег, вероятно, ожидается два знака после запятой:
<input type="number" step="0.01">(Я бы тоже поставил
min=0если это может быть только положительным)если вы предпочитаете чтобы разрешить любое количество знаков после запятой, вы можете использовать
step="any"(хотя для валют, я бы рекомендовал придерживаться0.01). В Chrome и Firefox шаговые кнопки будут увеличиваться / уменьшаться на 1 при использованииany. (спасибо ответу Михала Стефанова за указаниеanyи смотрите соответствующую спецификацию здесь)вот игровая площадка, показывающая, как различные шаги влияют на различные типы ввода:
<form> <input type=number step=1 /> Step 1 (default)<br /> <input type=number step=0.01 /> Step 0.01<br /> <input type=number step=any /> Step any<br /> <input type=range step=20 /> Step 20<br /> <input type=datetime-local step=60 /> Step 60 (default)<br /> <input type=datetime-local step=1 /> Step 1<br /> <input type=datetime-local step=any /> Step any<br /> <input type=datetime-local step=0.001 /> Step 0.001<br /> <input type=datetime-local step=3600 /> Step 3600 (1 hour)<br /> <input type=datetime-local step=86400 /> Step 86400 (1 day)<br /> <input type=datetime-local step=70 /> Step 70 (1 min, 10 sec)<br /> </form>
как обычно, я добавлю небольшое примечание: помните, что проверка на стороне клиента-это просто удобство для пользователя. Вы также должны проверить на стороне сервера!
через: http://blog.isotoma.com/2012/03/html5-input-typenumber-and-decimalsfloats-in-chrome/
но что, если вы хотите, чтобы все числа были действительны, целые и десятичные числа? В этом случае установите шаг "любой"
<input type="number" step="any" />
работает для меня в Chrome, не проверял в других браузерах.
на основе этой ответ
<input type="text" id="sno" placeholder="Only float with dot !" onkeypress="return (event.charCode >= 48 && event.charCode <= 57) || event.charCode == 46 || event.charCode == 0 ">значение :
Char код:
- 48-57 равна
0, 1, 2, 3, 4, 5, 6, 7, 8, 9- 0 имеет вид
Backspace(в противном случае нужно обновить страницу в Firefox)- 46 и
dot
&&иAND,||иORоператора.если вы попытаетесь плавать с запятой:
<input type="text" id="sno" placeholder="Only float with comma !" onkeypress="return (event.charCode >= 48 && event.charCode <= 57) || event.charCode == 44 || event.charCode == 0 ">поддерживаемые Chromium и Firefox (Linux 64-разрядная версия)(других браузеров у меня не существует.)
вы можете использовать:
<input type="number" step="any" min="0" max="100" value="22.33">надеюсь помочь, с уважением
Я так и делаю
<input id="relacionac" name="relacionac" type="number" min="0.4" max="0.7" placeholder="0,40-0,70" class="form-control input-md" step="0.01">затем я определяю min в 0,4 и max в 0,7 с шагом 0,01: 0,4, 0,41, 0,42 ... 0.7
вы можете использовать атрибут step для ввода номера типа:
<input type="number" id="totalAmt" step="0.1"></input>
step="any"позволит любое десятичное число.step="1"не допускает десятичной дроби.step="0.5"позволит 0.5; 1; 1.5; ...step="0.1"позволит 0.1; 0.2; 0.3; 0.4; ...
У меня просто была такая же проблема, и я мог бы исправить это, просто поставив запятая, а не период/полная остановка в число из-за французская локализация.
Так он работает с:
2 ОК
2,5 ОК
2.5-это KO (число считается "незаконным", и вы получаете пустое значение).
Comments