0

シナリオ:

入力として任意の文字または数字の組み合わせを受け取ることができる 3 つのボックスがあります。最初のボックスには最大 3 文字、2 番目のボックスは正確に 7 文字、最後のボックスは 2 文字にする必要があります。

ユーザーが3文字を入力したら最初のボックスから2番目のボックスに移動し、7文字後に2番目から3番目に移動し、3番目から2文字後にボタンに移動するjQuery関数を配置しようとしていました文字。また、この関数を他のコントロールから使用できるようにかなり一般的なものにしたいので、次のように設定します。

function moveOn(e, objID, nextID, howLong) {
        if (!(e.keyCode == 9)) {
            if ($(objID).val().length >= (howLong)) {
                $(nextID).select();
            }
        }
    }

フィットの原因はShift + Tabです。その if(keyCode == 9) チェックでキャッチしようとしていますが、キーアップであるため、Shift キーが Tab よりも少し前に現れる可能性があります。その場合、イベントは Shift キーではなく Shift キー (16) でトリガーされます。タブ (9)。ユーザーは少なくとも 1 つのフィールドで大文字を使用している可能性が高いため、すべての Shift キャッチを無視することはできません。

Shift+Tab は、最初の値を入力した後、間違いを犯したことに気づき、元に戻したいときに使用されます。私たちの従業員は非常にキーボード駆動型であるため、ほとんどの場合、Shift + Tab を使用して戻って修正しようとします。

この作業を流動的にするために欠けているトリックはありますか?

ティア。

4

1 に答える 1

1

シフト (16) のキー コードを無視しても問題はないと思います。ユーザーがシフトを解放すると、それは無視されます。次に、Shift キーが押されているかどうかに関係なく、押された他のキーに対して個別の onkeydown イベントを発生させます。ここでテストできます: http://asquare.net/javascript/tests/KeyCode.html

于 2012-07-03T19:20:08.160 に答える