HTML5 中是否有浮点数输入类型?

1155
根据 html5.org 的说法,“number” 输入类型的 “value” 属性,如果指定且非空,必须具有有效的浮点数值。然而,在最新版本的 Chrome 中,它只是一个整数的“上下控件” ,并非浮点数。

<input type="number" id="totalAmt"></input>

HTML5中是否有原生的浮点数输入元素,或者有什么方法可以让数字输入类型使用浮点数而不是整数?还是我必须使用jQuery UI插件?

14个回答

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

这个对我来说很有帮助,我认为这是使输入框接受任何小数的最简单方法,无论小数部分有多长。 步骤属性实际上告诉输入框应该接受多少小数位。 例如,step="0.01" 只会接受两个小数点。

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"
/>

4

这个主题(例如step="0.01")与stepMismatch有关,并且被所有浏览器支持,具体如下:

图片描述

2
如果任何一种方法都不起作用,您可以使用 parseFloat。

const totalAmt = document.getElementById("totalAmt");


totalAmt.addEventListener("change", (e)=>{
      // e.preventDefault(e);
      const result = parseFloat(e.target.value);
     console.log(result)
});
<input type="text" id="totalAmt" />


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接