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'>