jqueryダイアログで表示されるフォームのすべての入力要素にタブインデックスを設定しようとしています。現在の動作では、ユーザーがタブを開始すると (最初の要素がフォーカスに設定されているため、行の最初になります)、すべてのコントロールをタブで移動できます。ダイアログの背後にある要素に引き続きタブで移動できるという問題があります。
これが発生するのを防ぎ、開いているダイアログのフォーム要素のみをタブで移動する方法はありますか?
jqueryダイアログで表示されるフォームのすべての入力要素にタブインデックスを設定しようとしています。現在の動作では、ユーザーがタブを開始すると (最初の要素がフォーカスに設定されているため、行の最初になります)、すべてのコントロールをタブで移動できます。ダイアログの背後にある要素に引き続きタブで移動できるという問題があります。
これが発生するのを防ぎ、開いているダイアログのフォーム要素のみをタブで移動する方法はありますか?
はい、この問題には解決策があります。私は同じ問題に直面していました。
それを機能させるには、使用する必要がありますjquery.ui.dialog.js
…あなたのページに含めてください。また、jQuery モーダル ダイアログ コードを に追加しますdocument.ready
。
持っている要素の数を数えて、tabindex == numberOfTabs の場合に元のインデックスにリセットされるように設定します。
機能の外でこれを行う必要がある場合などは、非表示の入力で行います
次に、タブ イベント アクセスの js で、tabindexCurrent val() を新しいものに更新します。
私はあなたに論理を与えています。それに応じてコードを書くことができます。
フォームの最後の要素に、キー プレス イベントを処理するイベント ハンドラーを追加します。
ハンドラー関数内では、キーが TAB でない場合は true を返す必要があります。それ以外の場合は false を返します。
つまり、そのフィールドでは非 TAB キーのみが機能します。
タブのASCIIコードをGoogleで検索できます。重要なイベントを処理するための Google コード。
ありがとうございました