我们的客户希望我们为输入字段显示数字键盘,所以基本上我创建了一个字段,如:
<input type="number" name="quantity" step=".01" value="0.00" />
但是,Galaxy Tablet会删除"." 并合并前后的数字,也禁用"." 在键盘上.
当使用type ="text"时,是否有其他方法可以解决此问题或在输入字段中显示数字键盘?
注意:我尝试使用模式属性(适用于iPhone).我在Android 2.1+的各种Android设备上测试了这个问题.我没有在任何其他HTC和三星设备上遇到此错误.
在某些Android设备上,创建HTML5数字输入字段不会显示任何小数位.
<input type="number" step="0.001" min="0" name="foo" />
Run Code Online (Sandbox Code Playgroud)
这很麻烦,因为我正在尝试编写一个HTML5 + Javascript应用程序.它目前适用于IOS以及一些(大多数?)Android设备.只是某些Android版本/品牌在弹出的数字键盘上没有显示小数位.
例如,在Galaxy S3上,应用程序本身运行正常,但如果在Chrome中打开相同的代码,则不会得到小数点.我正在使用这个组合来测试并尝试解决这个bug.
这是问题 - 是否有任何方法可以使用Javascript来检测键盘是否会显示小数点?在那些情况下,我可以以编程方式将number类型更改为text,但我只想对必要的设备执行此操作.
(或者,有没有办法强制小数点出现在键盘上?到目前为止我的研究表明没有,这就是为什么我要问的是解决方法.)
我尝试过使用各种步骤(any,0.1等),设置模式,将起始值设置为十进制(value="0.1")都无济于事.
我已经尝试检测到浏览器可以处理数字字段,但这会报告为"真实"......设备可以处理数字字段,它们只是处理错误:
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
Run Code Online (Sandbox Code Playgroud)
我不确定下一步该尝试什么......来自社区的任何想法?
如何在iOS 和 Android 上显示带小数点按钮的数字键盘?是否有特定于离子的方法来做到这一点?
我可以在iOS和Android上显示数字键盘,具体如下:
<input type="number" pattern="[0-9]*">
Run Code Online (Sandbox Code Playgroud)
iOS似乎忽略了type值"number"并显示了基于该pattern属性的数字键盘,但type无论如何都为Android设置了"数字".
编辑:忘记提及我试过了pattern="[0-9.]*".当我这样做时,iOS只显示完整的键盘.
编辑2:我也试过pattern="\d+[,.]?\d*"- 再次,无济于事.
HTML5有一个名为"number"的新输入类型.在大多数移动智能手机上,这会打开一个数字键盘.在pre-html5手机上,类型会回归到"文本",我们没问题.然而,在某些型号上,数字小键盘没有句号,也无法单击"符号"按钮添加句号.具有此缺陷的已知型号是:
还有什么型号?较旧的三星Android 2.2手机没有这个问题.其他Android设备,如Nabi Tab没有这个问题.我看过Galaxy S3没有这个问题.
见相关讨论:
此外,没有注意到那些输入类型="tel "适用于iPad,但不能作为iPhone上数字的替代品.因此,webapp必须确定设备模型,否则请求输入type ="text ".
什么手机和平板电脑型号错误地解释input type="number"为整体非十进制输入键盘?
android ×4
html5 ×3
html-input ×2
cordova ×1
galaxy-tab ×1
ionic ×1
ios ×1
javascript ×1
jquery ×1
numbers ×1