在input type=number
的firefox中,它会自动消除前缀中的零。考虑包含.08
之类的小数,但它只显示.8
(目前我们有两个不同的输入类型编号字段,一个用于currency
,另一个用于decimal
)它需要显示$100.00
,但它只显示$100.0
即,它不会检查它是否为金额(或)小数。它仅检查值。
让我知道是否是firefox的可修复或默认行为
<input type="number" value="100">.<input type="number" value="08">
答案 0 :(得分:0)
这是一种通过数字输入来防止此问题的方法:
<input type="text" pattern="[0-9]*" ...
将调出iPhone和更好的Android手机上的数字键盘,并且将接受全部0。
答案 1 :(得分:0)
一般而言,如果您有任何给定的数据类型,则无法拆分数据并保持其完整性:
2018-01-16T10:22:40.315Z
是日期/时间; 10
或T
不是。webmaster@example.com
是一封电子邮件; webmaster
,@
和example.com
不是。如果您决定将100.08
之类的十进制数分成100
,.
和08
,则不再有小数。您仍然可以将100
部分视为整数,但08
最多只是一个字母数字字符串,因为前导零很重要。
有没有办法改变输出格式?当然,如果你坚持标准,那就不是了。 HTML Living Standard by WHATWG说:
此规范未定义用户界面的用户代理 使用;鼓励用户代理供应商考虑什么是最好的 满足用户的需求。例如,波斯语或用户代理 阿拉伯市场可能支持波斯语和阿拉伯语数字输入 (按照描述将其转换为提交所需的格式 以上)。同样,为罗马人设计的用户代理可能会显示 罗马数字而不是小数的值;或者更多 实际上)为法国市场设计的用户代理可能 以前用数字和逗号之间的撇号显示值 小数,并允许用户以这种方式输入值, 在内部将其转换为上述提交格式。
无论您使用哪种解决方法,都必须基于每个浏览器开发并使用非标准扩展(如果有)。老实说,除了从头开始编写基于JavaScript的自定义控件之外,还要感受到更多的工作。
您的方法可能是正确的,但您无法使用基于标准的浏览器内置工具。