目前,我正在使用HTML,js和phonegap编写Android应用程序。这是我用来捕捉虚拟键盘上的输入按钮的功能:
function handleFormKeypress(e)
{
var currentInputElement = $(e.target);
if(e.keyCode == 13 || e.keyCode == 10)
{
Log("handleFormKeypress - Go pressed")
//this needs to be checks as passing in the 'submitButton' is optional
if (e.data != undefined)
{
if (e.data.handler != undefined)
{
e.data.handler();
}
}
currentInputElement.blur();
e.stopImmediatePropagation();
return false;
}
}
如您所见,我抓住了键盘的键码。使用Phonegap转换为Android应用程序,它应该捕获Go按钮或虚拟键盘的Next按钮。
我的输入字段的类型是数字:
<input type="number" id="blah blah blah"/>
在这种情况下,android虚拟键盘会显示带有下一个按钮的数字键盘。
我在几部Android手机上测试过。当我点击下一个按钮时,它会按照我的预期跳转到下一页。但在一些HTC手机上,实际上是HTC Nexus One和HTC One X,它什么也没做。
有人在这里有一些想法吗?
提前致谢。
答案 0 :(得分:0)
如何同时使用e.keyCode
和e.which
?
添加内联if语句以检查两者:
function handleFormKeypress(e)
{
var currentInputElement = $(e.target);
var keyCode = (e.keyCode ? e.keyCode : e.which);
if(keyCode == 13 || keyCode == 10)
{
Log("handleFormKeypress - Go pressed")
//this needs to be checks as passing in the 'submitButton' is optional
if (e.data != undefined)
{
if (e.data.handler != undefined)
{
e.data.handler();
}
}
currentInputElement.blur();
e.stopImmediatePropagation();
return false;
}