4桁のパスコードを入力するための4つの入力ボックスがあります。ユーザーが最初の入力ボックスに入力したときに、次の入力ボックスにフォーカスしたい。
document.getElementById('second').focus();
次の入力ボックスにフォーカスするために使用する必要がありました。残念ながら、これはiOSでは機能しません。
さらに調査したところ、「onkeyup」、「onkeypress」などのイベントではフォーカスが発生しませんが、「onclick」イベントでは機能することがわかりました。
この問題を修正するためのアイデアや、この問題を修正するための代替ソリューションはありますか。
HTML
<input id="first" name="first" type="number" style="width: 50px; height: 50px;" maxlength="1" onkeyup="focusSecondBox(event);" />
<input id="second" name="second" type="number" style="width: 50px; height: 50px;" maxlength="1" onkeyup="focusThirdBox(event);"/>
JS
function getEventCharCode(evt){
evt = (evt) ? evt : window.event;
var charCode = (evt.which) ? evt.which : evt.keyCode;
return charCode;
}
function isEmptyElement(element){
return (element === null || element.value === null || element.value === '');
}
function focusSecondBox(evt){
var element = document.getElementById('first');
var previousElement = document.getElementById('first');
var nextElement = document.getElementById('second');
focusInput();
}
function focusInput(){
var charCode = getEventCharCode(evt);
if (isEmptyElement(element)) {
if (charCode === 8) {
previousElement.focus();
previousElement.value = previousElement.value;
}
} else if (nextElement !== null) {
nextElement.focus();
}
}
ありがとうございました