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

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

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

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


当前回答

我遇到了同样的问题,我可以通过在数字中添加逗号而不是句号/句号来解决它,因为法语本地化。

所以它适用于:

2就可以了

2,5也可以

2.5是KO(这个数字被认为是“非法的”,你得到的是空值)。

其他回答

如果任何方法都不起作用,你可以使用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(这个数字被认为是“非法的”,你得到的是空值)。

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

这为我工作,我认为是最简单的方法,使输入字段接受任何小数,而不管小数部分有多长。 Step属性实际显示输入字段应该接受多少个小数点。 例如,step="0.01"将只接受两个小数点。

你可以将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;...

在我的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"
/>