files/en-us/web/api/element/focus_event/index.md
{{APIRef("UI Events")}}
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.
Use the event name in methods like {{domxref("EventTarget.addEventListener", "addEventListener()")}}, or set an event handler property.
addEventListener("focus", (event) => { })
onfocus = (event) => { }
A {{domxref("FocusEvent")}}. Inherits from {{domxref("UIEvent")}} and {{domxref("Event")}}.
{{InheritanceDiagram("FocusEvent")}}
This interface also inherits properties from its parent {{domxref("UIEvent")}}, and indirectly from {{domxref("Event")}}.
<form id="form">
<label>
Some text:
<input type="text" placeholder="text input" />
</label>
<label>
Password:
<input type="password" placeholder="password" />
</label>
</form>
const password = document.querySelector('input[type="password"]');
password.addEventListener("focus", (event) => {
event.target.style.background = "pink";
});
password.addEventListener("blur", (event) => {
event.target.style.background = "";
});
{{EmbedLiveSample("Simple_example", '100%', '50px')}}
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.
<form id="form">
<label>
Some text:
<input type="text" placeholder="text input" />
</label>
<label>
Password:
<input type="password" placeholder="password" />
</label>
</form>
const form = document.getElementById("form");
form.addEventListener(
"focus",
(event) => {
event.target.style.background = "pink";
},
true,
);
form.addEventListener(
"blur",
(event) => {
event.target.style.background = "";
},
true,
);
{{EmbedLiveSample("Event_delegation", '100%', '50px')}}
{{Specifications}}
{{Compat}}
Window targets: {{domxref("Window/focus_event", "focus")}} event