The DOM input
event is fired synchronously when the value of an <input>
, <select>
, or <textarea>
element is changed. For input
elements with type=checkbox
or type=radio
, the input
event should fire when a user toggles the control (via touch, mouse or keyboard) per the HTML5 specification, but historically, this has not been the case. Check compatibility, or attach to the change
event instead for elements of these types.
Additionally, the input
event fires on a contenteditable
editor when its contents are changed. In this case, the event target is the editing host element. If there are two or more elements which have contenteditable
as true, “editing host” is the nearest ancestor element whose parent isn’t editable. Similarly, it’s also fired on root element of designMode
editors.
Event
, InputEvent
Property | Type | Description |
---|---|---|
target Read only
| EventTarget | The event target (the topmost target in the DOM tree). |
type Read only
| DOMString | The type of event. |
bubbles Read only
| Boolean | Whether the event normally bubbles or not. |
cancelable Read only
| Boolean | Whether the event is cancellable or not. |
We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!
Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic support | (Yes) | (Yes) | (Yes)[1] | 9[2][3] | (Yes)[4] | (Yes) |
immediately after compositionupdate
| (Yes) | (Yes) | 12 (12) | (Yes) | 15 | (Yes) |
on contenteditable element | (Yes) | (Yes) | 14 (14) | No support | 15 | (Yes) |
when designMode is "on" | (Yes) | ? | 14 (14) | No support | 15 | (Yes) |
data | (Yes) | ? | No support | ? | ? | (Yes) |
isComposing | (Yes) | ? | 31 (31) | No support | No support | No support |
<select> | (Yes) | No support | 49 (49) | No support | ? | ? |
on input element of type checkbox
| No support | ? | 49 (49) | No support | No support | No support |
on input element of type radio
| No support | ? | 49 (49) | No support | No support | No support |
Feature | Android | Chrome for Android | Edge | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|---|
Basic support | (Yes) | (Yes) | (Yes) | (Yes) | ? | ? | (Yes) |
immediately after compositionupdate
| ? | ? | (Yes) | 12.0 (12) | ? | ? | ? |
on contenteditable element | ? | (Yes) | ? | 14.0 (14) | ? | ? | (Yes) |
when designMode is "on" | ? | ? | ? | 14.0 (14) | ? | ? | ? |
data | ? | ? | ? | No support | ? | ? | ? |
isComposing | No support | No support | ? | 31.0 (31) | No support | No support | No support |
<select> | ? | (Yes) | ? | No support | ? | ? | ? |
on input element of type checkbox
| ? | ? | ? | ? | ? | ? | ? |
on input element of type radio
| ? | ? | ? | ? | ? | ? | ? |
[1] Prior to Gecko 12.0 (Firefox 12.0 / Thunderbird 12.0 / SeaMonkey 2.9), Gecko didn't fire input events while composition was ongoing using IMEs or when dead keys were used on Mac OS X.
[2] IE 9 does not fire an input event when the user deletes characters from an input (e.g. by pressing Backspace or Delete, or using the "Cut" operation).
[3] IE 10 and IE 11 have a bug where the input event fires on placeholder attribute changes.
[4] Prior to Opera 15, Opera did not fire an input event after dropping text in an input field.
Also the change
event is related. change
fires less often than input
– it only fires when the changes are committed by the user.
© 2005–2018 Mozilla Developer Network and individual contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/Events/input