1

最大長に達したときに次のタブに移動する必要がある 3 つの入力があります。これらの 3 つの入力には値が付属しており、ユーザーが最初の入力の値を変更すると、次の入力にフォーカスします。

私の問題は、2 番目の入力が既に長さを持っているため、3 番目の入力にジャンプすることです。使用者が値をゆっくりと入力する場合、これは行われません。

問題の原因は、タイピングが速すぎると、最初のキーアップ イベントが 2 番目のタイプの後に発生し、2 番目の入力で発生することです。

私はこの問題についてjsfiddleを作成しました。これは、オート フォーカスの変更を配線するための関数です。

 function WireAutoTab(CurrentElement, NextElement) {
    CurrentElement.keyup(function (e) {
        //Retrieve which key was pressed.
        var KeyID = (window.event) ? event.keyCode : e.keyCode;
        var FieldLength = CurrentElement.attr('maxlength');

        //If the user has filled the textbox to the given length and
        //the user just pressed a number or letter, then move the
        //cursor to the next element in the tab sequence.   
        if (CurrentElement.val().length >= FieldLength && ((KeyID >= 48 && KeyID <= 90) || (KeyID >= 96 && KeyID <= 105)))
            NextElement.focus();
    });
}

これを防ぐために使用できる他のイベントはありますか? 私が望む動作は、2 番目の入力に値がある場合でも、そこで停止することです。

4

0 に答える 0