Firefox为输入类型=

时间:2018-01-16 09:57:05

标签: javascript html5 firefox

input type=number的firefox中,它会自动消除前缀中的零。考虑包含.08之类的小数,但它只显示.8(目前我们有两个不同的输入类型编号字段,一个用于currency,另一个用于decimal)它需要显示$100.00,但它只显示$100.0即,它不会检查它是否为金额(或)小数。它仅检查值。

让我知道是否是firefox的可修复或默认行为

<input type="number" value="100">.<input type="number" value="08">

2 个答案:

答案 0 :(得分:0)

这是一种通过数字输入来防止此问题的方法:

<input type="text" pattern="[0-9]*" ...

将调出iPhone和更好的Android手机上的数字键盘,并且将接受全部0。

答案 1 :(得分:0)

一般而言,如果您有任何给定的数据类型,则无法拆分数据并保持其完整性:

  • 2018-01-16T10:22:40.315Z是日期/时间; 10T不是。
  • webmaster@example.com是一封电子邮件; webmaster@example.com不是。

如果您决定将100.08之类的十进制数分成100.08,则不再有小数。您仍然可以将100部分视为整数,但08最多只是一个字母数字字符串,因为前导零很重要。

有没有办法改变输出格式?当然,如果你坚持标准,那就不是了。 HTML Living Standard by WHATWG说:

  

此规范未定义用户界面的用户代理   使用;鼓励用户代理供应商考虑什么是最好的   满足用户的需求。例如,波斯语或用户代理   阿拉伯市场可能支持波斯语和阿拉伯语数字输入   (按照描述将其转换为提交所需的格式   以上)。同样,为罗马人设计的用户代理可能会显示   罗马数字而不是小数的值;或者更多   实际上)为法国市场设计的用户代理可能   以前用数字和逗号之间的撇号显示值   小数,并允许用户以这种方式输入值,   在内部将其转换为上述提交格式。

无论您使用哪种解决方法,都必须基于每个浏览器开发并使用非标准扩展(如果有)。老实说,除了从头开始编写基于JavaScript的自定义控件之外,还要感受到更多的工作。

您的方法可能是正确的,但您无法使用基于标准的浏览器内置工具。