1

目前,我正在使用 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 虚拟键盘会显示一个带有下一步按钮的数字键盘。

我在几款安卓手机上进行了测试。当我单击下一个按钮时,它会按预期跳转到下一页。但在某些 HTC 手机上,实际上是 HTC Nexus One 和 HTC One X,它什么也没做。

有人在这里有一些想法吗?

提前致谢。

4

1 回答 1

0

如何同时使用e.keyCodee.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;
}
于 2013-08-05T11:15:14.133 回答