次のフィールドに自動的にジャンプするために、この JavaScript を使用しています。
<script>
function checkLen(x,y)
{
if (y.length==x.maxLength)
{
var next=x.tabIndex;
if (next<document.getElementById("formid").length)
{
document.getElementById("formid").elements[next].focus();
}
}
}
</script>
これが私のフォームです:
<form action="random.php" id="formid" method="post">
<input type="checkbox" name="cbox" tabindex="4" />Default
<input type="text" name="text1" id="text1" tabindex="1" />
<input type="text" name="text2" id="text2" tabindex="2" maxlength="1" onkeyup="checkLen(this,this.value)" />
<input type="text" name="text3" id="text3" tabindex="3" />
</form>
text2 に 1 文字 ( maxlength="1"
) を入力し終えると、tabindex が 4 のチェックボックスにジャンプしますが、論理的には、tabindex が 3 の text3 にジャンプすることを意味します。
チェックボックスからタブインデックスを削除したり、最後のタブインデックスの順序を付けたりするなど、あらゆる種類のことを行いましたが、機能していません。
テキスト 2 からテキスト 3 に 1 文字を入力すると、キャレットがジャンプします。