首页 文章

无法捕捉HTC手机虚拟键盘上的输入按钮

提问于
浏览
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;
}

}

如你所见,我 grab 了键盘的键码 . 使用Phonegap转换为Android应用程序,它应该捕获Go按钮或虚拟键盘的Next按钮 .

我的输入字段的类型是数字:

<input type="number" id="blah blah blah"/>

在这种情况下,android虚拟键盘会显示带有下一个按钮的数字键盘 .

我在几部Android手机上测试过 . 当我点击下一个按钮时,它会按照我的预期跳转到下一页 . 但在一些HTC手机上,实际上是HTC Nexus One和HTC One X,它什么也没做 .

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

提前致谢 .

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;
    }
    

相关问题