HTMLInputElement: search event

Non-standard
This feature is non-standard and is not on a standards track. Do not use it on production sites facing the Web: it will not work for every user. There may also be large incompatibilities between implementations and the behavior may change in the future.

The search event is fired when a search is initiated usinng an <input> element of type="search".

Bubbles Yes
Cancelable No
Interface Event
Event handler property onsearch

There are several ways a search can be initiated, such as by pressing Enter while the <input> is focused, or, if the incremental attribute is present, after a UA-defined timeout elapses since the most recent keystroke (with new keystrokes resetting the timeout so the firing of the event is debounced).

Current UA implementations of <input type="search"> have an additional control to clear the field. Using this control also fires the search event. In that case the value of the <input> element will be the empty string.

Examples

// addEventListener version
const input = document.querySelector('input[type="search"]');

input.addEventListener('search', () => {
 console.log("The term searched for was " + input.value);
})

// onsearch version
const input = document.querySelector('input[type="search"]');

input.onsearch = () => {
 console.log("The term searched for was " + input.value);
})

Specifications

This event is not part of any specification.

Browser compatibility

Update compatibility data on GitHub
DesktopMobile
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung Internet
search event
Non-standard
Chrome Full support YesEdge No support NoFirefox No support NoIE No support NoOpera Full support YesSafari Full support YesWebView Android Full support YesChrome Android Full support YesFirefox Android No support NoOpera Android ? Safari iOS ? Samsung Internet Android ?

Legend

Full support  
Full support
No support  
No support
Compatibility unknown  
Compatibility unknown
Non-standard. Expect poor cross-browser support.
Non-standard. Expect poor cross-browser support.