テキストボックスに最大文字数の入力がされたら、自動で次のフォーム部品へ移動するサンプルです。
自動フォーカス移動
例)最大文字数入力すると自動で次の要素へフォーカス移動する
1 2 3 4 5 6 7 8 9 10 11 |
function setNextFocus(obj){ if(obj.value.length >= obj.maxLength){ var es = document.fm1.elements; for(var i=0;i<es.length;i++){ if(es[i] == obj){ es[i+1].focus(); break; } } } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>サンプル</title> <script src="sample.js"></script> </head> <body> <form name="fm1"> <input type="text" id="txt1" maxlength="4" onkeyup="setNextFocus(this)" /> <input type="text" id="txt2" maxlength="4" onkeyup="setNextFocus(this)" /> <input type="text" id="txt3" maxlength="4" onkeyup="setNextFocus(this)" /> <input type="text" id="txt4" maxlength="4" onkeyup="setNextFocus(this)" /> <input type="button" value=" ボタン " onclick="alert('入力が完了しました!');" /> </form> </body> </html> |
実行サンプル
それぞれ4文字入力すると自動で次のテキストボックスへ移動します。
(クレジットカード番号入力を想定しています。)