私は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
そして最も重要な部分 - フォーカスの変更後にソフト キーボードが表示されます。
この問題を解決することは可能ですか?
どんなコメントでも大歓迎です!
よろしくお願いします