2

Textboxes電話番号は 3 つあります。Textbox1 max length is 32nd's max length is 3および3rd max length is 4。ユーザーが自動的に入力three digitsすると、TextBox3 と同様に同じことが起こります。イベントでこの機能を処理しています。TextBox1cursor movesTextBox2TextBox2keyup

ここに画像の説明を入力

問題は、押すと

Ctl+a

Ctl+c

Ctl+v

カーソルは、それに到達して next に移動するTextbox3ため、自動的に移動します。つけておきたい。何か案は?TextboxMax LengthTextboxTextBox1

私のコードは以下です。

<asp:TextBox runat="server" ID="tbPh2" MaxLength="3" onkeyup="Mainautotab2(this, 0, event);"/>
<asp:TextBox runat="server" ID="tbPh22" MaxLength="3" onkeyup="Mainautotab2(this, 1, event);"/>
<asp:TextBox runat="server" ID="tbPh222" class="midium" MaxLength="4" />


function Mainautotab2(original, destination, evt) {
         if (document.getElementById('<%= tbPh2.ClientID%>').value.length == 3 && document.getElementById('<%= tbPh22.ClientID%>').value.length == 3) {

         if (destination == 0)
             document.getElementById("<%=tbPh22.ClientID %>").focus();
         if (destination == 1)
             document.getElementById("<%=tbPh222.ClientID %>").focus();
     }
}
4

2 に答える 2

4

押されたコントロール キーの使用を確認することをお勧めします。その方法の詳細については、この投稿を参照してください。CTRL キーが押されたことを検出した場合は、次のテキスト ボックスに移動しないでください。

または、ユーザーが 3 番目の文字を入力しているときに「次へ移動」機能のみを動作させたい場合は、おそらくキーダウン時に文字数をチェックする行に沿って何かを行います。この新しいキー押下が 3 番目の文字であり、前のキー押下が 2 番目の文字であることを確認してください (つまり、lastKeyPressCount をどこかに保存します)。


私はとてもいい人なので!ここに私自身の作品のいくつかがあります:

HTML

<input type="text" id="1" maxlength="3" data-nextid="2"/>
<input type="text" id="2" maxlength="3" data-nextid="3"/>
<input type="text" id="3" maxlength="4"/>​

JavaScript (JQuery を使用)

$("input").keyup(function(e){
    if(e.ctrlKey || e.which == 17 || e.which == 65 || e.which == 67 || e.which == 86){
        return;        
    }
    if($(this).val().length == $(this).attr("maxlength")){
        var nextid = $(this).data("nextid");
        if(nextid){
              $("#" + nextid).focus();       
        }
    }
});​

このコードは、文字 A、C、および V に加えて CTRL キーを無視するように特別に設定されていることに注意してください。

実例はこちらをご覧ください

于 2012-04-24T11:25:21.377 に答える
0

OnKeyUpイベントを使用しないでください。テキストボックスのTextValueChangedを使用して、テキストボックス内のテキストの長さをカウントします

于 2012-04-24T12:17:27.783 に答える