特定の入力の最大文字数に達したときに、次の入力フィールドに自動的に移動するクライアントのプロジェクト用のスクリプトに取り組んでいます。なんらかの理由で、入力値が本来よりも 1 つ少ない値を返しているため、「しきい値」を超えて余分な文字が入力されると、「次の」入力に移動します。
これが入力値を監視するための私のスクリプトです-ofc、より良い方法がある場合はアドバイスしてください:)-
var watchLength = function (watch) {
watch.onkeypress = function () {
var nextInput = getNextSibling(this);
console.log(this.getAttribute('data-autotab-length'));
console.log(this.value.length);
if (this.value.length == this.getAttribute('data-autotab-length')) {
nextInput.focus();
console.log('Limit reached here');
}
};
};
そして、作業入力へのjsFiddle。最初の入力は「2」文字に制限されていますが、3 を入力すると次の入力にジャンプします。これは keypress/keydown イベントが初期値を読み取らないことに関係していると思いますが、修正方法がわかりません。どんな助けでも本当に感謝しています。
コンソールに結果を記録しています: