1

Mobile Safari ブラウザーを使用して iPad クライアントにのみ配信される Web アプリに取り組んでいます。私のフォームには、ペアリングされた Bluetooth バーコード スキャナーからのデータが入力される 2 つの入力フィールドがあります。

最初のフィールドがスキャンされると、次の JavaScript がリターン キーの押下を監視します。これにより、着信文字列が解析され、フォーカスが数量フィールドに設定されます...

    function tabtoquantity(e) {
    keyEntry = event.keyCode; 
    if(keyEntry == '13') {
        var barcode = document.test.barcodefield.value;
        var labeltext = barcode.split("*");
        document.test.itemkey.value = labeltext[0];
        document.test.description.value = labeltext[1];
        document.test.lotno.value = labeltext[2];
        document.test.datercvd.value = labeltext[3];
        document.test.binno.value = labeltext[4];
        document.test.unitwgt.value = labeltext[5];
        document.test.slot.value = labeltext[6];
        document.test.allergens.value = labeltext[7];
        document.test.kosher.value = labeltext[8];

        //document.test.barcodefield.disabled="true";
        //document.test.barcodefield.style.display="none";

        document.test.scanqty.focus();
    }
    else if((keyEntry < '48') || (keyEntry > '57'))  {
        return false;             
    }
}

私のscanqtyフィールドにフォーカスを設定しないことを除いて、これはすべてうまく機能します。

奇妙なことに、scanqty フィールドの横に、onClick が次の関数を呼び出すボタンがあります。

    function qtyreset() {
    document.test.scanqty.value = '';
    document.test.scanqty.focus();
}

なぜ同じコマンドが 1 つのインスタンスで機能し、別のインスタンスでは機能しないのか、私は途方に暮れています。この機能は、通常の Safari で意図したとおりに機能します。

関連性があるかもしれませんが (?)、Mobile Safari のフォーム アシスタント ([前へ] ボタンと [次へ] ボタン) は、ページを読み込むと表示されますが、最初のフィールドにデータをスキャンすると消えます...スキャン量フィールドにフォーカスを設定したいのですが、どこにも焦点を合わせていないようです。

入力/ヘルプに感謝します。

4

1 に答える 1

0

サイトをホーム画面に追加し、このリンクでサイトを開いた場合にのみ focus() が機能するようです。

于 2013-07-04T14:17:50.037 に答える