Firefox 在输入类型编号中显示的值与用 html 编写的编号不同

Posted

技术标签:

【中文标题】Firefox 在输入类型编号中显示的值与用 html 编写的编号不同【英文标题】:Firefox displays value in a input type number different then the one written in html 【发布时间】:2014-08-24 05:04:33 【问题描述】:

我们有一个带有类型编号的简单输入字段。 当我们显示大数字时,元素中可见的值与字段中的值不同。 这只发生在 firefox(30.0 版的 testet)上。

如果我有以下代码,用 html 编写的值是 9999999999999999,但 Firefox 显示 10000000000000000。

<input type="number" min="0" max="9999999999999999" value="9999999999999999">

有没有什么办法可以在移动设备上显示数字输入字段而不显示类型号或解决这个问题?

jsfiddle

【问题讨论】:

我不知道您的情况的解决方案或原因,但请参阅此代码snippet,它只允许在文本类型输入字段中输入数字,Reference 【参考方案1】:

只需在 FF 和 Chrome 中尝试fiddle

alert(9999999999999999);//return 10000000000000000
alert(999999999999999);//return 999999999999999

我认为这是 IEEE 754 规范的“功能”(例如 0.1 + 0.2)。试试IEEE 754 converter,你就会明白为什么结果会改变。

【讨论】:

这也是其他号码变化的原因吗?就像当我将值更改为 4242424242424242 时,最后一个数字更改为 0。 如果您通过 javascript 更改 number 输入值并且它的值变为 0 - 这是一个错误。可能是this。此外number 输入是在FF28 中实现的,其中有很多bugs。我现在不在 FF 中使用它。

以上是关于Firefox 在输入类型编号中显示的值与用 html 编写的编号不同的主要内容,如果未能解决你的问题,请参考以下文章

防止在输入类型编号中输入非数字

如何将html输入的值与sql数据库的值进行比较

从输入类型号递增而不是递减值

Angular.js 和 HTML5 日期输入值——如何让 Firefox 在日期输入中显示可读的日期值?

如何在Firefox上设置输入字段编号向上和向下按钮的样式

返回响应中的错误'无法调用非函数类型'NSHTTPURLResponse?'的值与斯威夫特 3