数字键盘默认为,但允许文本

时间:2014-05-13 09:50:25

标签: android html5 cordova keyboard html-input

我目前正在使用apache cordova和HTML5开发针对Android和桌面设备的应用程序。

为了弹出数字键盘,我使用了input type="number",效果很好。

但是,输入字段也应该接受stringstype=number的当前功能是ui似乎允许输入字符串,但如果输入无效(例如,不是数字),则元素的value属性不会更改。

有没有办法在移动设备上获取数字键盘,同时仍能输入文字?

我的初始尝试包括捕获keydown事件并手动设置this.value属性。我已经尝试过使用jQuerys .val(),当然还有更“原生”的方法element.val += char。这些都不起作用。 UI已更新,但更改未反映在模型中。

修改

对于下一个试图实现这一目标的人。

1) HTML解决方案。

正如@LuudJacobs在下面的评论中提到的那样; 除了定义type-attribute之外,目前无法确定显示哪个键盘。虽然某些设备有一个返回字母键盘的按钮,但并非每个设备的情况都是如此。而且不能可靠使用。

2)编写一个phonegap / cordova插件。

可以编写一个插件来随意显示和隐藏键盘。但是,就我所知,目前还没有办法以编程方式告诉它默认为符号键盘。因此,所实现的功能类似于在HTML中使用type=numbertype=text。这种方法的另一个问题是Android设备的键盘多样性,甚至用户自己也可以安装自定义键盘。因此,键盘的功能可能是未知的。什么在一台设备上运行,可能不适用于下一台设备。

3) JS / HTML / Canvas解决方案

最后......一个可行的解决方案。我建议看看this walkthrough因为它显示了一个简单的方法来使用html和js创建键盘。另一个选择是使用画布,并自己绘制键盘,但我想这会更容易出错并且更难做到。

1 个答案:

答案 0 :(得分:0)

正如HTML5 spec中所解释的那样,您可以 input type="number"中只有有效的浮点数。所以你做不到。旁注:如果用户只有数字键盘,他们将如何输入文字?