0

私はjsfiddleで私の問題を説明するためのコードを作成しました - これはその http://jsfiddle.net/nxjohny/ULEDk/11/へのリンクと対応するコードです:

<input id="input_1" type="text" maxlength="8">
<input id="input_2" type="text" maxlength="2">
<input id="hidden" type="hidden" />
<input id="hidden_2" type="hidden" />
<div id="demo">  PFFUU  </div>

//script 
function selectNextInput(e){
        if(e.val().length != 2){
            return;
        }
        console.log("ASD");
        $("#hidden").trigger('mouseup');
    };

    function setNextFocus(){
        $("#input_2").focus();
    }
    $(function(){

        var dec = function(){
            selectNextInput($("#input_1"));
        }
        $("#input_1").focus();
        $("#input_1").keyup(dec);
        $("#hidden").mouseup(setNextFocus);
        $("#demo").mouseup(setNextFocus);
    });

1 解決策: id="demo" div をクリックすると、フォーカスが 2 番目の div に設定されます。

2 解決策: 最初の入力フィールドが keyup(content length == x) のステートメントを満たす場合、フォーカスはトリガーされたマウスアップ イベントで 2 番目の入力フィールドに設定され、別の場所で処理されます。

問題は次のとおりです。最初の解決策では、iOS デバイスでソフト キーボードが消えません。2 番目の解決策では、iOS でソフト キーボードが表示されなくなります。iPhoneで2番目の解決策を試したところ、ソフトキーボードが消えました:(

1番目のソリューションがiOSで行うのと同じように、2番目のソリューションで達成したいと思います。

要約: (何をしたい | 疑似) if(condition) //入力の長さ、次に setFocusNext fi

そして最も重要な部分 - フォーカスの変更後にソフト キーボードが表示されます。

この問題を解決することは可能ですか?

どんなコメントでも大歓迎です!

よろしくお願いします

4

1 に答える 1

0

解決策は、キーボードを取り除くためにblur()もう一度やり直すことだと思います。focus()

于 2013-06-10T20:43:21.777 に答える