根据html5.org,“number”输入类型的“value属性,如果指定且不为空,必须有一个有效浮点数的值。”
然而,它只是一个带有整数的“上下”控件(至少在最新版本的Chrome中),而不是浮动:
<输入类型=“数字” id=“totalAmt”></input>
是否有一个原生的HTML5浮点输入元素,或一种方法,使数字输入类型与浮点,而不是整数工作?或者我必须求助于jQuery UI插件?
根据html5.org,“number”输入类型的“value属性,如果指定且不为空,必须有一个有效浮点数的值。”
然而,它只是一个带有整数的“上下”控件(至少在最新版本的Chrome中),而不是浮动:
<输入类型=“数字” id=“totalAmt”></input>
是否有一个原生的HTML5浮点输入元素,或一种方法,使数字输入类型与浮点,而不是整数工作?或者我必须求助于jQuery UI插件?
当前回答
如果任何方法都不起作用,你可以使用parse float。
const totalAmt = document.getElementById("totalAmt"); totalAmt。addEventListener(“改变”,(e) = > { / / e.preventDefault (e); const result = parseFloat(e.target.value); console.log(结果) }); <input type="text" id="totalAmt" />
其他回答
我遇到了同样的问题,我可以通过在数字中添加逗号而不是句号/句号来解决它,因为法语本地化。
所以它适用于:
2就可以了
2,5也可以
2.5是KO(这个数字被认为是“非法的”,你得到的是空值)。
通过http://blog.isotoma.com/2012/03/html5-input-typenumber-and-decimalsfloats-in-chrome/
但是如果你想让所有的数字都是有效的,整数和小数都是有效的呢?在本例中,将step设置为“any”
<input type="number" step="any" />
适用于我的Chrome浏览器,没有测试在其他浏览器。
是的,这是正确答案:
step="any"
这样更有效率。相信我。
<输入类型=“数字” 步骤=“任意”>
. getelementbyid(“form1”)。addEventListener(‘提交’,函数(e) { e.preventDefault (); alert("Your nnumber is: "+document.getElementById('n1').value) 警报(“这有用吗?:)请点赞”) }) <形式id =“form1 " > <input type="number" step="any" id="n1"> <按钮类型=“提交”> > < /按钮提交 > < /形式 <!——upvote:)——>
数字类型有一个步骤值,控制哪些数字是有效的(以及max和min),默认值为1。这个值也被用于步进按钮的实现(即按下增加步进)。
只需将此值更改为合适的值。对于钱,小数点后两位可能是期望的:
<label for="totalAmt">Total Amount</label>
<input type="number" step="0.01" id="totalAmt">
(我也设置min=0如果它只能是正的)
如果您希望允许小数位数任意,可以使用step="any"(不过对于货币,我建议使用0.01)。在Chrome和Firefox,步进按钮将增加/减少1时,使用任何。(感谢Michal Stefanow的回答,并在这里查看相关规范)
下面是一个展示不同步骤如何影响不同输入类型的游乐场:
<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>
像往常一样,我将添加一个简短的说明:请记住,客户端验证只是为了方便用户。您还必须在服务器端进行验证!
你可以使用:
<input type="number" step="any" min="0" max="100" value="22.33">