web-dev-qa-db-ja.com

JavaScriptでタブキープレスイベントを起動しますか?

JavaScriptで実際のタブキーの押下をシミュレートしようとしています。次の要素などに焦点を当てたくはありません。Tabキーが押されたように見せたいだけです。

その理由は、タブと同じようにEnterキーを使用できるようにするフォームJavaScriptクラスを構築しているためです。誰かがネイティブのブラウザオートコンプリートを使用している場合、選択したオートコンプリート応答をキャプチャするためにタブキーを起動する必要があります。次の入力に移動しただけでは、オートコンプリートの選択がキャプチャされず、フィールドが空白のままになります。

何かご意見は?

20
Kirk Ouimet

私はそれが可能だとは思いません。 DOMイベントに関する記事はこちら ...セキュリティ上の理由から、イベントを発生させてもユーザーアクションのデフォルトの結果はトリガーされないという言及。スクリプトは、ユーザーの操作を直接シミュレートできないようにする必要があります。実際にキーを押すのをシミュレートするのではなく、キーを押すと発生する動作(フィールドにフォーカスするなど)をシミュレートする必要があります。ブラウザが明示的にそうするための手段を提供しない限り、おそらくブラウザのネイティブオートコンプリート機能と対話することはできません。

編集:

参照:[ https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-autocomplete] (オートコンプリートHTML属性)

24
RMorrisey