Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 默认为数字键盘,但允许使用文本_Android_Html_Cordova_Keyboard_Html Input - Fatal编程技术网

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

Android 默认为数字键盘,但允许使用文本,android,html,cordova,keyboard,html-input,Android,Html,Cordova,Keyboard,Html Input,我目前正在使用ApacheCordova和HTML5开发一个针对android和桌面设备的应用程序 为了让数字键盘弹出,我使用了input type=“number”,效果很好 但是,输入字段也应接受字符串。type=number的当前功能是,ui似乎允许输入字符串,但如果输入无效(例如,非numberic),则元素的value属性不会更改 有没有办法在移动设备上使用数字键盘,同时还能输入文本? 我的初始尝试包括捕获keydown事件并手动设置this.value属性。我已经使用jQuerys.

我目前正在使用ApacheCordova和HTML5开发一个针对android和桌面设备的应用程序

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

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

有没有办法在移动设备上使用数字键盘,同时还能输入文本?

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

编辑

为了下一个想达到这个目标的人

1) HTML解决方案


正如@LuudJacobs在下面的评论中提到的;除了定义type属性外,目前无法决定显示哪个键盘。虽然有些设备有返回字母键盘的按钮,但并非所有设备都是如此。不能可靠地使用

2) 编写phonegap/cordova插件

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

3) JS/HTML/Canvas解决方案


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

如中所述,在
输入类型=“number”
中,除了有效的浮动之外,你什么都不能有。所以你不能。旁注:当用户只有数字键盘时,他们将如何输入文本?

使用
type=number
不是必须的,所需的功能只是键盘弹出,数字/符号为默认值。在我的平板电脑上,您可以更改为普通键盘,即使type属性设置为number。虽然这可能(应该???)在其他设备上不起作用。我刚刚在我的手机上测试了它,但它在那个设备上不起作用。因此,
type=number
在这一点上几乎是不可能的。因为我需要数字和字母,但希望数字/符号键盘显示为默认值。目前除了定义
类型
-属性外,无法决定显示哪个键盘。也许你可以在网站上添加一个HTML/JS NuPad来帮助你的用户?在这个时候,我必须考虑的是HTML/JS解决方案。@ LuudJacobs,“当用户只有一个数字键盘时,用户如何输入文本?”+ 1。