在一些Android设备/Chrome上,HTML5数字输入中没有小数点

No decimal place in HTML5 number input on some Android devices / Chrome

本文关键字:数字输入 HTML5 小数点 Android 设备 Chrome      更新时间:2023-10-12

在一些Android设备上,创建HTML5数字输入字段不会显示任何小数点。

<input type="number" step="0.001" min="0" name="foo" />

这很麻烦,因为我正在尝试编写HTML5+Javascript应用程序。它目前适用于IOS以及一些(大多数?)Android设备。只是一些安卓版本/品牌没有在弹出的数字键盘上显示小数点。

例如,在Galaxy S3上,应用程序本身运行良好,但如果在Chrome中打开相同的代码,则不会得到小数点。我正在使用这个组合来测试并尝试解决这个bug。

问题是,有没有办法使用Javascript来检测键盘不会显示小数点?在这种情况下,我可以通过编程将number类型更改为text,但我只想对必要的设备进行更改

(或者,有什么方法可以强制小数点出现在键盘上吗?到目前为止,我的研究表明没有,这就是为什么我要问变通方法。)

我尝试过使用各种步骤(any0.1等)、设置模式、将起始值设置为十进制(value="0.1"),但都无济于事。

我试着检测到浏览器可以处理数字字段,但这报告为"true"。。。设备可以处理数字字段,它们只是处理得很糟糕:

var i = document.createElement("input");
i.setAttribute("type", "number");
i.setAttribute("step", "0.001");
alert(i.type + ' and ' + i.step); // gives "number and 0.001", so the device has stored the values and claims to support them

我不知道下一步该做什么。。。社区里有什么想法吗?

尝试将min标记设置为0.0而不是0

<input type="number" step="0.001" min="0.0" name="foo" />