asp.netアプリケーションを開発しました。ユーザーがアプリケーションのフィールドをタブで移動し、最後を超えて続行する場合、タブはアプリケーションの外部で続行されます。これには、ユーザーがURLを入力するボックスが含まれ、次に検索条件を入力するためのGoogleボックスを含む他のボックスが含まれます。その後、最終的にはアプリケーションの最初のフィールドに戻ります。
タブを自分のアプリケーションのみに制限するにはどうすればよいですか?
asp.netアプリケーションを開発しました。ユーザーがアプリケーションのフィールドをタブで移動し、最後を超えて続行する場合、タブはアプリケーションの外部で続行されます。これには、ユーザーがURLを入力するボックスが含まれ、次に検索条件を入力するためのGoogleボックスを含む他のボックスが含まれます。その後、最終的にはアプリケーションの最初のフィールドに戻ります。
タブを自分のアプリケーションのみに制限するにはどうすればよいですか?
これを処理する最も簡単な方法は、実行しないことです。ユーザーが独自のアプリケーションとやり取りする方法を変更しないでください。これは、ユーザーが制御できないものであり、制御するべきではありません。TAB キーには、非常に予測可能な方法で機能する明確に定義されたユーザー インターフェイス タスクがあります。利用可能なすべてのブラウザーを使用したわけではありませんが、99% のブラウザーで、タブ キーを使用すると、ユーザーはページ上の入力フィールドとブラウザーのツールバーの入力フィールド間を移動できます。これを変更すると、ユーザーを苛立たせるだけです。マウスを使用しないユーザーはどうなりますか? 障害のあるユーザーはどうですか?
ここで設計上の決定を再考してください。
私が考えることができる唯一のことはonkeydown
、ページ内の最後のフィールドをキャッチできるJavaScriptを作成し、それがタブキーであることをテストしてから、フォーカスを最初のフィールドに戻すことです:
<body>
<input id="field1" /><br />
<input id="field2" /><br />
<input id="field3" onkeydown="return loopBack();" />
</body>
<script type="text/JavaScript">
function loopBack() {
if (event.keyCode == 9) {
var field1 = document.getElementById("field1");
field1.focus();
field1.select();
return false;
}
}
</script>