Content · Web Development · HTML

HTML focusin DOM Event: Reference and Examples

Learn when the focusin DOM event fires and how to handle it with JavaScript using a practical HTML example.

1 views Published Oct 19, 2026 Updated Oct 19, 2026 Admin

When someone interacts with a webpage, the browser sends events to the relevant JavaScript code. The focusin event happens when focus moves onto an element or its descendant.

When focusin happens


Focus moves onto an element or its descendant.

You can listen for it using addEventListener(). That keeps event handling separate from HTML attributes such as onclick and works well with modern code organization.

A small working example


<div id="demo-target">
    <button type="button">First</button>
    <button type="button">Second</button>
</div>
<p id="event-status" role="status">Waiting for focusin...</p>
<script>
    const eventTarget = document.getElementById("demo-target");
    const eventStatus = document.getElementById("event-status");

    if (eventTarget) {
        eventTarget.addEventListener("focusin", (eventDetails) => {
            eventStatus.textContent = "focusin event received";
            console.log(eventDetails.type, eventDetails.target);
        });
    }
</script>

Reading the code


The browser listens for focusin on the relevant target. When the event occurs, the callback receives eventDetails, updates the status message and logs the event name and target in Developer Tools.

Tab between children and watch the event bubble to the parent.

This event bubbles, which makes it useful for observing focus within a whole form.

Try it in your browser


Open the page, show the Console panel, and follow this test: Tab between children and watch the event bubble to the parent. Then change one thing in the example and observe whether the event still fires.

Common Beginner Mistakes


  • Expecting focusin to fire without its required user action or browser condition.
  • Tab between children and watch the event bubble to the parent.
  • Adding repeated event listeners without considering cleanup or unwanted side effects.

Key Takeaways


  • focusin reports focus moves onto an element or its descendant.
  • addEventListener("focusin", ...) listens for the event on the appropriate target.
  • Tab between children and watch the event bubble to the parent.
Share this resourceSend this page to someone who may find it useful.