最大長に達したときに次のタブに移動する必要がある 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 番目の入力に値がある場合でも、そこで停止することです。