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 アプリに変換すると、[移動] ボタンまたは仮想キーボードの [次へ] ボタンをキャッチする必要があります。

私の入力フィールドのタイプは数値です:

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

この状況では、Android の仮想キーボードは、次のボタンを備えた数字キーボードを表示します。

いくつかの Android スマートフォンでテストしました。次のボタンをクリックすると、期待どおりに次のページにジャンプします。しかし、一部の HTC 携帯電話、実際には HTC Nexus One や HTC One X では何もしません。

誰かがここにいくつかのアイデアを持っていますか?

前もって感謝します。

4

1 に答える 1

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;
}
于 2013-08-05T11:15:14.133 に答える