React onBlur Event (original) (raw)

Last Updated : 23 Jul, 2025

In React, handling user interactions efficiently is important for building responsive and dynamic applications. One of the commonly used events for managing focus behaviour is the onBlur event. This event is important for tracking when a user moves the focus away from an element, such as an input field or a button.

In this article, we will explore the onBlur event in React, its purpose, how it works, and common use cases.

What is onBlur Event?

The onBlur event in React is a synthetic event that is triggered when an element loses focus. It is commonly used with form elements like input fields, text areas, and buttons to handle situations when the user moves away from an element, either by clicking elsewhere on the page or navigating to another element using the keyboard (e.g., pressing the "Tab" key).

**Syntax

It is similar to the HTML DOM onblur event but uses the camelCase convention in React.

When Does the onBlur Event Get Triggered?

The onBlur event gets triggered when an element loses focus. This can happen in several ways:

Handling the onBlur Event

The onBlur event in React is fired when an element loses focus. This event is commonly used for performing actions after a user finishes interacting with an input field, such as form validation, UI updates, or saving data.

JavaScript `

import React, { useState } from 'react';

function App() { const [value, setValue] = useState('');

const handleBlur = () => {
    console.log('Input blurred');
};

return (
    <form action="">
        <label htmlFor="">Name:</label>
        <input
            type="text"
            value={value}
            placeholder='Write Your Name'
            onChange={
                (e) => 
                setValue(e.target.value)}
            onBlur={handleBlur}
        />
    </form>
);

}

export default App;

`

**Output

onBlurGIF

Handling the onBlur Event

**In this code

Preventing Default Behavior

In some cases, you may want to prevent certain default behaviors triggered by the onBlur event, such as re-focusing or unintended UI changes. We prevent the default form submission behavior using the onSubmit event in React, which is commonly used in forms. We'll use the event.preventDefault() method to stop the form from reloading the page when the user submits it. Instead, we handle the form submission programmatically.

JavaScript ``

import React, { useState } from "react";

function PreventDefault() { const [value, setValue] = useState(""); const [message, setMessage] = useState("");

const handleSubmit = (event) => {
    event.preventDefault();
    if (!value.trim()) {
        setMessage("Please enter something in the input field!");
    } else {
        setMessage(`Form submitted successfully with value: ${value}`);
    }
};

const handleChange = (event) => {
    setValue(event.target.value);
    setMessage(""); 
};

return (
    <div>
        <h2>Form with Prevented Default Submission</h2>
        <form onSubmit={handleSubmit}>
            <label>
                Enter Text:
                <input
                    type="text"
                    value={value}
                    onChange={handleChange}
                    placeholder="Type something"
                />
            </label>
            <button type="submit">Submit</button>
        </form>

        {/* Display the message based on form submission */}
        {message && <p>{message}</p>}
    </div>
);

}

export default PreventDefault;

``

**Output

prevention

Preventing Default Behavior

**In this code

Accessing the Event Object

The onBlur event handler in React receives an event object that provides details about the focus change. This event object is useful for accessing information such as the element that lost focus, the previous element, and other relevant data.

JavaScript `

import React, { useState } from "react";

function AccessEvent() { const [value, setValue] = useState("");

const handleChange = (event) => {
    console.log("Event Object:", event); 
    console.log("Input Value:", event.target.value); 
    setValue(event.target.value); 
};

return (
    <div>
        <h2>Access Event Object Example</h2>
        <input
            type="text"
            value={value}
            onChange={handleChange} 
            placeholder="Type something"
        />
        <p>Input Value: {value}</p>
    </div>
);

}

export default AccessEvent;

`

**Output

access-

Accessing the Event Object

**In this code

Using onBlur for Focus Validation

One common use case for the onBlur event is focus validation, which allows you to validate user input when they move focus away from an input field (e.g., checking if an email address is valid after they leave the input field).

JavaScript `

import React, { useState } from "react";

function FocusValidation() { const [email, setEmail] = useState(""); const [error, setError] = useState("");

const handleBlur = () => {
    const regex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,6}$/;
    if (!regex.test(email)) {
        setError("Please enter a valid email.");
    } else {
        setError("");
    }
};

const handleChange = (event) => {
    setEmail(event.target.value);
};

return (
    <div>
        <input
            type="email"
            value={email}
            onChange={handleChange}
            onBlur={handleBlur}
        />
        {error && <p style={{ color: "red" }}>{error}</p>}
    </div>
);

}

export default FocusValidation;

`

**Output

blur-1-

Using onBlur for Focus Validation

Using onBlur for Toggling Edit Modes

We can also use the onBlur event to toggle between edit and view modes in a UI component, allowing users to edit a field and then automatically switch it back to a display mode when they finish.

JavaScript `

import React, { useState } from "react";

function ToggleEdit() { const [isEditing, setIsEditing] = useState(false); const [value, setValue] = useState("Click to Edit");

const handleBlur = () => {
    setIsEditing(false); 
};

const handleChange = (event) => {
    setValue(event.target.value);
};

return (
    <div>
        {isEditing ? (
            <input
                type="text"
                value={value}
                onChange={handleChange}
                onBlur={handleBlur} 
            />
        ) : (
            <p onClick={() => setIsEditing(true)}>{value}</p> 
        )}
    </div>
);

}

export default ToggleEdit;

`

**Output

blur-12

Using onBlur for Toggling Edit Modes

**In this code

Common Use Cases for React onBlur Event

The onBlur event in React is highly versatile and can be used to handle various interactions and enhance user experience. Below are some common use cases where onBlur can be particularly useful:

Conclusion

The onBlur event in React is a powerful tool for handling user focus interactions. It provides a way to respond to changes in focus, such as validating input, displaying helpful messages, or formatting data. By understanding when and how to use onBlur, you can significantly improve the user experience in your React applications, especially when dealing with forms and interactive elements.