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