React - remove the focus from a input element
In this tutorial, we are going to learn about how to remove the focus from a input element in React.
Consider, we have the following component in our React app.
import React, { useEffect, useRef } from "react";
function App() {
const searchInput = useRef(null)
return (
<div>
<label>Search </label>
<input ref={searchInput} autofocus/>
<button>Remove focus</button>
</div>
);
}Now, we need to remove the focus from the above input element.
Removing the focus from a input
To remove the focus from a input element in React, first we need to access the element inside the component using ref then call a blur() method on it.
Here is an example:
import React, { useEffect, useRef } from "react";
function App() {
const searchInput = useRef(null);
function handleFocus(){
searchInput.current.blur(); // removing focus
}
return (
<div>
<label>Search </label>
<input ref={searchInput} autofocus/>
<button onClick={handleFocus}>Remove focus</button> </div>
);
}In the example above, we first added a searchInput ref to the input element. So, we can access and modify the dom node of an input element inside the component methods.
Next, we added a searchInput.current.blur() method inside the handleFocus() event handler, so when a Remove focus button is clicked it removes the focus from a input element.
We used the HTMLElement.blur() to remove the focus from a element.
The blur() method removes the keyboard focus from the element, where it was called on.
If you want to set a focus back to the input element, then call a focus() method on the input element.
searchInput.current.focus(); // adding the focus

