最初のテキスト ボックスに 4 文字、2 番目のテキスト ボックスに 6 文字の 2 つのテキスト ボックスに分割された 10 桁のコードを受け取る Web ページがあります。
ユーザーが最初のテキストボックスに4番目の文字を入力すると、カーソルが2番目のテキストボックスにジャンプするように、JavaScriptを実装しようとしています。
ページは次のようにレイアウトされています。
<asp:TextBox ID="txtCode1" onkeyup="Next()" runat="server" Width="45" MaxLength="4"/>
<asp:TextBox ID="txtCode2" runat="server" Width="70" MaxLength="6"/>
私は次のJavascriptを使用しています:
function Next()
{
var control1 = document.getElementById('<%= txtCode1.ClientID %>');
var control2;
if (control1.value.length == 3)
{
control2 = document.getElementById['<%= txtCode2.ClientID %>'];
control2.Focus();
}
}
私の問題は、関数が 2 番目のテキスト ボックスを認識しないことです。Javascript をステップ実行しても問題はありませんが、長さを見つけtxtCode1
て取得することはできますが、長さが 4 文字に達しcontrol2
、getElementById()
呼び出しで入力する必要がある場合、control2 を未定義として設定し、control2.Focus() 呼び出しでエラーがスローされます。
control1 と control2 を取得するコードが同じである理由がわかりませんが、これは機能しません。何が欠けていますか?