前提・実現したいこと
お世話になっております。
inputタグ4つを使って暗証番号の入力画面を作りたいのですが、
入力された際に次のinputの入力欄にフォーカス動きは以下のコードで実装でき、
次に入力内容を削除した際に、前のinput入力欄にフォーカスさせるという動きを実装したいのですがエラーが出てしまいます。
どこが間違っているかご指摘いただけますと有り難いです。
html
1<input type="password" name="password" id="password01" maxlength="1" onkeyup="moveOnMax(this,'password02')"> 2<input type="password" name="password" id="password02" maxlength="1" onkeyup="moveOnMax(this,'password03')"> 3<input type="password" name="password" id="password03" maxlength="1" onkeyup="moveOnMax(this,'password04')"> 4<input type="password" name="password" id="password04" maxlength="1">
javascript
1moveOnMax = function (field, nextFieldID) { 2 if (field.value.length == 1) { 3 document.getElementById(nextFieldID).focus(); 4 5 }
試したこと
javascript
1moveOnMax = function (field, nextFieldID,prevFieldeID) { 2 if (field.value.length == 1) { 3 document.getElementById(nextFieldID).focus(); 4 } else if (field.value.length < 1) { 5 document.getElementById(prevFieldID).focus(); 6 } 7 }
HTML
1<input type="password" name="password" id="password01" maxlength="1" 2 onkeyup="moveOnMax(this,'password02','password01')"> 3<input type="password" name="password" id="password02" maxlength="1" 4 onkeyup="moveOnMax(this,'password03','password01')"> 5<input type="password" name="password" id="password03" maxlength="1" 6 onkeyup="moveOnMax(this,'password04','password02')"> 7<input type="password" name="password" id="password04" maxlength="1" 8 onkeyup="moveOnMax(this,'password04','password03')">
入力後、次のフィールドへのフォーカスすることができなくなりました。
また、エラーは無くなりましたが、else ifの方にconsole.logでprevFieldeIDを出力すると、入力した際にもコンソールにprevFieldeIDの値が出力されてしまっています。
else ifの内容も else if (field.value.length < 1)に変えたのですが、このif分の指定がそもそも間違っているのでしょうか?
回答3件
あなたの回答
tips
プレビュー