Is there a float input type in HTML5?
根据html5.org,"number"输入类型的"value"属性,如果指定且不为空,则必须具有有效的浮点数。
然而,它只是(无论如何,在最新版本的chrome中)一个带有整数的"updown"控件,而不是浮动的:
1 | <input type="number" id="totalAmt"></input> |
有没有一个HTML5自带的浮点输入元素,或者一种让数字输入类型使用浮点数而不是整数的方法?还是必须使用jquery用户界面插件?
只需将该值更改为适当的值。对于货币,可能需要两位小数:
1 | <input type="number" step="0.01"> |
(如果只能是肯定的话,我也会设置
如果您愿意允许任何小数位数,您可以使用
以下是一个游乐场,展示了各种步骤如何影响各种输入类型:
1 2 3 4 5 6 7 8 9 10 11 12 13 | <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/
But what if you want all the numbers to be valid, integers and decimals alike? In this case, set step to"any"
1 | <input type="number" step="any" /> |
在Chrome中对我有效,而不是在其他浏览器中测试。
你可以使用:
1 | <input type="number" step="any" min="0" max="100" value="22.33"> |
希望能帮忙,问候
基于这个答案
1 2 3 | <input type="text" id="sno" placeholder="Only float with dot !" onkeypress="return (event.charCode >= 48 && event.charCode <= 57) || event.charCode == 46 || event.charCode == 0"> |
含义:
字符代码:
- 48-57等于
0, 1, 2, 3, 4, 5, 6, 7, 8, 9 。 - 0是
Backspace (否则需要在firefox上刷新页面) - 46是
dot 。
如果尝试用逗号浮动:
1 2 3 | <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 x64)(其他浏览器我不存在。)
可以使用输入类型编号的step属性:
1 | <input type="number" id="totalAmt" step="0.1"></input> |
我这样做
1 | <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"> |
然后,我用步骤0.01定义了0.4中的最小值和0.7中的最大值:0.4、0.41、0.42…零点七
我也遇到了同样的问题,我可以通过在数字中加逗号而不是句号/句号来解决,因为法语本地化了。
因此,它适用于:
2可以
2,5可以
2.5是ko(该数字被视为"非法",您将收到空值)。