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
| Desktop | Mobile | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
search event | Chrome Full support Yes | Edge Full support 79 | Firefox No support No | IE No support No | Opera Full support Yes | Safari Full support Yes | WebView Android Full support Yes | Chrome Android Full support Yes | Firefox Android No support No | Opera Android ? | Safari iOS ? | Samsung Internet Android Full support Yes |
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.
