フォームフィールドが最大長(この例では1)に達したときにカーソルが次のフィールドに移動するコードを記述しました。Firefoxで動作するようにJavaScriptコードを取得できない
JS:
window.onload=function(){
var container = document.getElementsByClassName("container")[0];
container.onkeyup = function(e) {
var target = e.srcElement;
var maxLength = parseInt(target.attributes["maxlength"].value, 10);
var myLength = target.value.length;
if (myLength >= maxLength) {
var next = target;
while (next = next.nextElementSibling) {
if (next == null)
break;
if (next.tagName.toLowerCase() == "input") {
next.focus();
break;
}
}
}
}
}
HTML:
<div class="container">
<label><input type="text" name="pin1" maxlength="1" pattern="\d{1}" onkeypress="return isNumber(event)" required/> -
<input type="text" name="pin2" maxlength="1" pattern="\d{1}" onkeypress="return isNumber(event)" required/> -
<input type="text" name="pin3" maxlength="1" pattern="\d{1}" onkeypress="return isNumber(event)" required/> -
<input type="text" name="pin4" maxlength="1" pattern="\d{1}" onkeypress="return isNumber(event)" required/>
</label>
</div>
フォームでは、Google Chromeと他の携帯電話のブラウザ上でうまく動作しますが、それは、Firefox上で動作していません。
クロスブラウザで動作させるのを手伝ってください。
どこ '' isNumber''のfuncがありますか? –