根据html5.org的说法,“数字”输入类型的“值属性,如果指定且不为空,则必须具有一个有效浮点数的值”。
但这只是简单的(无论如何,在最新版的Chrome中),是带有整数而不是浮点数的“上下”控件:
<input type="number" id="totalAmt"></input>
是否有HTML5固有的浮点输入元素,或使数字输入类型适用于浮点而不是整数的方法?还是我必须诉诸jQuery UI插件?
根据html5.org的说法,“数字”输入类型的“值属性,如果指定且不为空,则必须具有一个有效浮点数的值”。
但这只是简单的(无论如何,在最新版的Chrome中),是带有整数而不是浮点数的“上下”控件:
<input type="number" id="totalAmt"></input>
是否有HTML5固有的浮点输入元素,或使数字输入类型适用于浮点而不是整数的方法?还是我必须诉诸jQuery UI插件?
Answers:
该number
类型具有一个step
值,该值控制哪些数字有效(以及max
和min
),默认为1
。此值也被实现用于步进按钮(即,按增加step
)。
只需将此值更改为适当的值即可。为了赚钱,可能期望两位小数:
<input type="number" step="0.01">
(min=0
如果它只能是正数,我也会设置)
如果您希望允许小数位数,可以使用step="any"
(尽管对于货币,我建议坚持使用0.01
)。在Chrome和Firefox中,当使用时,步进按钮将增加/减少1 any
。(感谢Michal Stefanow指出的答案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="number" step="any" min="0" max="100" value="22.33">
根据这个答案
<input type="text" id="sno" placeholder="Only float with dot !"
onkeypress="return (event.charCode >= 48 && event.charCode <= 57) ||
event.charCode == 46 || event.charCode == 0 ">
含义:
字符代码:
0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Backspace
(否则需要Firefox上的刷新页面)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 X64)(我不存在其他浏览器。)
我也遇到了同样的问题,由于法国本地化,我可以只用逗号而不是句号 / 句号来解决问题。
因此它适用于:
2还可以
2,5还可以
2.5是KO(数字被视为“非法”,并且您收到空值)。