我正在编写一个小的 javascript 实用程序来进行一些数字计算。几乎所有的输入都是真实的数字(也就是说,我正在用它们做数学;它们不是邮政编码或类似的东西)。其中一些数字表示在计算之前要添加到其他数字的修饰符。我希望这些数字显示为带符号的,如果值大于零,则带有前导加号。这在 Firefox 和 IE 中运行良好,它们对数字输入没有任何特殊作用。然而,Chrome 不允许在number
输入值中使用加号,尽管parseFloat
可以很好地处理它。现在,我的代码手动+
在字段值前面加上 a,这会导致它在 Chrome 中中断。
有没有办法让它在 Chrome 中工作?显然(在“输入”元素之前或之后生成 CSS 内容):before
在这里对我没有用处。理想情况下,我想保留这种number
类型;如果一切都失败了,我可以使用text
,但我依赖min
,max
和step
属性。
更新:添加novalidate
到该字段允许加号,但随后 Chrome 将声明一个value
空字符串。检查元素,当它无效时,我看不到任何获取显示值的方法,即使使用novalidate
.
更新:似乎没有从无效字段中获取值的好方法(如何获取 <input type="number"> 字段的原始值?)。并且验证确认min
,max
和step
属性是不允许的input[type=text]
。除非我想出别的东西,否则我可能会放弃加号。