2014-05-13 33 views
0

我目前正在开发一款针对使用apache cordova和HTML5的android和桌面设备的应用程序。默认情况下为数字键盘,但允许使用文本

为了让数字键盘弹出,我用input type="number",它工作正常。

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

有没有办法让移动设备上的数字键盘仍然能够输入文本?

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

编辑

在接下来的家伙努力实现这一目标。

1) HTML解决方案。

正如@LuudJacobs在下面的评论中提到的那样; 目前没有办法决定显示哪个键盘,除了定义类型属性。虽然有些设备有一个返回到字母键盘的按钮,但不是每个设备的情况。并不能可靠地使用。

2)写一个phonegap/cordova插件。

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

3) JS/HTML /帆布溶液

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

回答

0

如在HTML5 spec中所解释的那样,您可以在而不是有一个除input type="number"之外的有效浮点数。所以你不能。在旁注中:用户在只有数字键盘时如何输入文字?

+0

使用'type = number'不是必需的,所需的功能只不过是将数字/符号作为默认键盘弹出。 在我的平板电脑上,即使将type属性设置为数字,也可以更改为普通键盘。虽然这可能(应该??)不适用于其他设备。 – atomman

+0

我不认为你可以依靠所有设备上的工作。 – LuudJacobs

+0

我刚刚在我的手机上进行了测试,结果没有成功。所以'type = number'在这一点上几乎不在图片中。由于我需要数字和字母,但宁愿将数字/符号键盘显示为默认值。 – atomman

相关问题