3

tabindexフォームと、ユーザーがフォーム要素のプロパティを介してフォームを操作する方法を制御しようとしています。すべての要素がtabindex指定されており、この値が尊重され、適切に使用されることを望んでいます。

私は現在 Mac/Firefox で開発を行っており、タブ切り替えを入力要素とリストのみに設定するデフォルトの Mac システム設定を認識しています。ただし、これと、システム/ブラウザーでこれを妨げる可能性のあるその他の設定をオーバーライドしたいと考えています。

これを回避するためにjQueryを使用しています。この時点での私のコードは次のとおりです。

$(":input").keypress(function(e){
    if (e.which == 0)
    {
        tindex = parseInt($(this).attr("tabindex")) + 1;
        $(":input[tabindex='" + tindex + "']").focus();
    }
});

しかし、これは私が望むようには機能していません。デフォルトの Mac 設定が有効になっている場合、これは実際にはタブインデックスをスキップし、非テキスト/テキストエリア アイテムを完全にスキップします。たとえば、オンinput[tabindex=2]のときに「Tab」キーを押すと、に送られinput[tabindex=4]ます。私がオンで、 と の間にボックスinput[tabindex=2]がある場合、私は に送られます。selectinput[tabindex=2]input[tabindex=4]input[tabindex=5]

、、などinput[tabindex=2]に送りたいです。基本的に 3 のすべて。input[tabindex=3]select[tabindex=3]input[type=radio][tabindex=3]tabindex

この問題を回避するためのアイデアを教えてください。また、他のシステム/ブラウザで私が調べるべきことを知っているかどうか教えてください.

4

1 に答える 1

4

e.preventDefault();keypress イベント ハンドラーに追加します。これにより、ブラウザはこのイベントでデフォルト アクションを実行できなくなります。これにより、リンクがクリック ハンドラーに配置されている場合、ブラウザーはリンクをたどることもできなくなります。

ドキュメントを参照してください。

于 2009-07-18T17:20:38.143 に答える