0

たとえば、テキスト入力用の HTML コードに 3 つの要素があります。

<input type="text" name="txt1" />
<input type="text" name="txt2" />
<input type="text" name="txt3" />

最初の読み込み時に、js でtxt1にフォーカスするように設定しました。私の質問は、txt1からtxt3にタブを押したときに keyascii を操作するにはどうすればよいですか?

実際、それを行うためにjqueryを使用していくつかのjsコードを追加しましたが、機能しません! 常にtxt2に焦点を当てています。これは私のjsコードです:

$('input[name="txt1"]').keyup(function(e){
        if((e.keyWhich || e.keyCode) == 9){
            $('input[name="txt3"]').focus();
        }
    });
4

2 に答える 2

2

リッスンして、デフォルトの動作を防止するためkeydownに使用します。e.preventDefault()押すことのデフォルトの動作は、イベントが発生tabする前に実行されます。keyupそのため、keydown代わりに使用する必要があります。

$('input[name="txt1"]').keydown(function(e){
    if((e.keyWhich || e.keyCode) == 9){            
        e.preventDefault();
        $('input[name="txt3"]').focus();
    }
});

このフィドルを参照してください

于 2013-07-02T07:09:11.323 に答える
1

代わりに keydown をリッスンし、 e.preventDefault() を使用する必要があります

例:

$('input[name="txt1"]').keydown(function(e){
    if((e.keyWhich || e.keyCode) == 9) {
        e.preventDefault();
        $('input[name="txt3"]').focus();
    }
});

JSFiddleで見る

preventDefault のドキュメント

于 2013-07-02T07:09:04.150 に答える