Chrome 5上的浮点数HTML 5 input type =“number”元素
我需要让用户input浮点数,所以我使用下面的元素:
<input type="number" name="my_number" placeholder="Enter number"/>
在Firefox上效果很好,但是当我尝试input小数时,Chrome会抱怨数字不是整数。 这是我的情况的一个问题。 如果我input一个step
属性,那么Chrome允许浮点数:
<input type="number" name="my_number" placeholder="Enter number" step="0.1"/>
但那么问题是0.15不能进入…这step
似乎不适合我的需要。 W3C规范在input type="number"
的属性中提到了浮点数。
如何让Chrome接受没有step
属性的浮点数?
尝试<input type="number" step="any" />
它不会有validation问题,箭头将有“1”的步骤,
约束validation:当元素有一个允许值的步骤,并且应用algorithm将string转换为数字的结果与元素值给出的string是一个数字,并且从步骤基数中减去的数字不是一个整数允许值步骤的倍数,该元素正遭受步骤不匹配。
以下范围控制只接受0..1范围内的值,并允许在该范围内执行256个步骤:
<input name=opacity type=range min=0 max=1 step=0.00392156863>
以下控件允许select一天中的任何时间,并具有任何精度(例如千分之一秒精度或更高):
<input name=favtime type=time step=any>
通常,时间控制限于一分钟的精度。
http://www.w3.org/TR/2012/WD-html5-20121025/common-input-element-attributes.html#attr-input-step
如果您的目标是2位小数,请尝试<input type="number" step="0.01" />
:-)。
注意:如果您使用的是AngularJS,那么除了更改步骤值之外,您可能必须在htmlinput上设置ng-model-options="{updateOn: 'blur change'}"
。
这样做的原因是为了让validation程序运行得更less,因为它们阻止用户input小数点。 这样,用户可以input小数点,validation器在用户模糊后生效。
尝试这个
<input onkeypress='return event.charCode >= 48 && event.charCode <= 57 || event.charCode == 46'>