docs.rodeo

MDN Web Docs mirror

Element: focus event

{{APIRef}} 

The focus event fires when an element has received focus. The event does not bubble, but the related {{domxref("Element/focusin_event", "focusin")}}  event that follows does bubble.

The opposite of focus is the {{domxref("Element/blur_event", "blur")}}  event, which fires when the element has lost focus.

The focus event is not cancelable.

Syntax

Use the event name in methods like {{domxref("EventTarget.addEventListener", "addEventListener()")}} , or set an event handler property.

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

onfocus = (event) => {};

Event type

A {{domxref("FocusEvent")}} . Inherits from {{domxref("UIEvent")}}  and {{domxref("Event")}} .

{{InheritanceDiagram("FocusEvent")}} 

Event properties

This interface also inherits properties from its parent {{domxref("UIEvent")}} , and indirectly from {{domxref("Event")}} .

Examples

Simple example

HTML

<form id="form">
  <label>
    Some text:
    <input type="text" placeholder="text input" />
  </label>
  <label>
    Password:
    <input type="password" placeholder="password" />
  </label>
</form>

JavaScript

const password = document.querySelector('input[type="password"]');

password.addEventListener("focus", (event) => {
  event.target.style.background = "pink";
});

password.addEventListener("blur", (event) => {
  event.target.style.background = "";
});

Result

{{EmbedLiveSample("Simple_example", '100%', '50px')}} 

Event delegation

There are two ways of implementing event delegation for this event: by using the {{domxref("Element/focusin_event", "focusin")}}  event, or by setting the useCapture parameter of {{domxref("EventTarget.addEventListener()", "addEventListener()")}}  to true.

HTML

<form id="form">
  <label>
    Some text:
    <input type="text" placeholder="text input" />
  </label>
  <label>
    Password:
    <input type="password" placeholder="password" />
  </label>
</form>

JavaScript

const form = document.getElementById("form");

form.addEventListener(
  "focus",
  (event) => {
    event.target.style.background = "pink";
  },
  true,
);

form.addEventListener(
  "blur",
  (event) => {
    event.target.style.background = "";
  },
  true,
);

Result

{{EmbedLiveSample("Event_delegation", '100%', '50px')}} 

Specifications

{{Specifications}} 

Browser compatibility

{{Compat}} 

See also

In this article

View on MDN