1. 開発者向けのウェブ技術
  2. Web API
  3. Element
  4. focus

このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

Element: focus イベント

Baseline 広く利用可能

この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2015年7月以降、すべてのブラウザーで利用可能です。

focus イベントは、要素がフォーカスを受け取ったときに発生します。このイベントはバブリングしませんが、その後に発生する関連する focusin イベントはバブリングします。

focus の反対は blur であり、これは要素がフォーカスを失ったときに発生します。

focus イベントはキャンセル不可です。

構文

このイベント名を addEventListener() 等のメソッドで使用するか、イベントハンドラープロパティを設定するかしてください。

js
addEventListener("focus", (event) => {});
onfocus = (event) => {};

イベント型

FocusEvent です。 Event を継承しています。

Event UIEvent FocusEvent

イベントプロパティ

親である UIEvent および間接的に Event から継承したプロパティもあります

FocusEvent.relatedTarget

もしあれば、フォーカスを受け取った要素。

簡単な例

HTML

html
<form id="form">
 <label>
 テキストを入力:
 <input type="text" placeholder="テキストを入力" />
 </label>
 <label>
 パスワード:
 <input type="password" placeholder="password" />
 </label>
</form>

JavaScript

js
const password = document.querySelector('input[type="password"]');
password.addEventListener("focus", (event) => {
 event.target.style.background = "pink";
});
password.addEventListener("blur", (event) => {
 event.target.style.background = "";
});

結果

イベント委譲

このイベントのイベント委譲を実装する方法は 2 つあります。 focusin イベントを使用するか、 addEventListener()useCapture 引数に true を設定するかです。

HTML

html
<form id="form">
 <label>
 テキストを入力:
 <input type="text" placeholder="テキストを入力" />
 </label>
 <label>
 パスワード:
 <input type="password" placeholder="password" />
 </label>
</form>

JavaScript

js
const form = document.getElementById("form");
form.addEventListener(
 "focus",
 (event) => {
 event.target.style.background = "pink";
 },
 true,
);
form.addEventListener(
 "blur",
 (event) => {
 event.target.style.background = "";
 },
 true,
);

結果

仕様書

仕様書
UI Events
# event-type-focus
HTML
# handler-onfocus

ブラウザーの互換性

関連情報

MDN の改良に協力

協力方法を知る

このページは MDN の貢献者によって に最終更新されました。

AltStyle によって変換されたページ (->オリジナル) /