根据html5.org,“number”输入类型的“value属性,如果指定且不为空,必须有一个有效浮点数的值。”

然而,它只是一个带有整数的“上下”控件(至少在最新版本的Chrome中),而不是浮动:

<输入类型=“数字” id=“totalAmt”></input>

是否有一个原生的HTML5浮点输入元素,或一种方法,使数字输入类型与浮点,而不是整数工作?或者我必须求助于jQuery UI插件?


当前回答

你可以将step属性用于输入类型number:

<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;...

其他回答

是的,这是正确答案:

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:)——>

通过http://blog.isotoma.com/2012/03/html5-input-typenumber-and-decimalsfloats-in-chrome/

但是如果你想让所有的数字都是有效的,整数和小数都是有效的呢?在本例中,将step设置为“any”

<input type="number" step="any" />

适用于我的Chrome浏览器,没有测试在其他浏览器。

我已经开始使用inputmode="decimal",它在智能手机上完美地工作:

<输入类型=“文本” 输入模式=“十进制”值=“1.5”>

注意,我们必须使用type="text"而不是number。然而,在桌面上,它仍然允许字母作为值。

对于桌面,您可以使用:

<输入类型=“数字” 输入模式=“十进制”>

允许0-9和。作为输入,只有数字。

请注意,一些国家使用,作为小数除数,这是在NumPad上默认激活的。因此,通过Numpad输入一个浮点数将不会像输入字段所期望的那样工作。(铬)。这就是为什么如果你的网站上有国际用户,你应该使用type="text"。


你可以尝试在桌面上(也与Numpad)和你的手机:

<p>输入text类型:</p> <input type="text" inputmode="decimal" value="1.5"> < br > <p>输入类型号:</p> <input type="number" inputmode="decimal" value="1.5">


参考:https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/inputmode

这个主题(例如step="0.01")与stepMismatch相关,所有浏览器都支持如下:

在我的IPad上使用React, type="number"并不完全适合我。 对于范围在99.99999 - .00000之间的浮点数,我使用正则表达式(^[0-9]{0,2}$)|(^[0-9]{0,2}\.[0-9]{0,5}$)。第一组(…)对于所有没有浮点数的正两位数(例如23)都是正确的,|或例如。12345对于第二组(…)。您可以将其用于任何正浮点数,只需分别更改范围{0,2}或{0,5}即可。

<input
  className="center-align"
  type="text"
  pattern="(^[0-9]{0,2}$)|(^[0-9]{0,2}\.[0-9]{0,5}$)"
  step="any"
  maxlength="7"
  validate="true"
/>