EventTarget事件:input
EventTarget事件 - input
当<input>,<select>或<textarea>元素的值被更改时,DOM input事件将同步触发。该事件也适用于启用了contenteditable的元素,以及启用designMode时的任何元素。
在contenteditable和designMode的情况下,事件目标是编辑主机。如果这些属性适用于多个元素,则编辑主机是最近的祖先元素,其父元素不可编辑。
对于type = checkbox或type = radio的<input>元素,只要用户根据HTML5规范切换控件,就会触发input事件。然而,从以往的使用结果来看,并非总是如此。检查兼容性,或者使用change事件代替这些类型的元素。
注意:与input不同,对于元素值的每次更改,都不一定会触发change事件。
基本信息
接口 | InputEvent |
---|---|
同步/异步 | 同步 |
冒泡 | 是 |
是否可取消 | 没有 |
是否可组成 | 是 |
目标 | Element |
默认操作 | 没有 |
属性
属性 | 类型 | 描述 |
---|---|---|
target (只读) | EventTarget | 事件目标(DOM树中最顶层的目标)。 |
type (只读) | DOMString | 事件的类型。 |
bubbles (只读) | Boolean | 事件是否正常冒泡。 |
cancelable (只读) | Boolean | 事件是否可以取消。 |
规范
- HTML5
- DOM Level 3事件
浏览器兼容性
我们将兼容性数据转换为机器可读的JSON格式。
- 电脑端
Chrome | Edge | Firefox(Gecko) | Internet Explorer | Opera | Safari | |
---|---|---|---|---|---|---|
基本支持 | 支持 | 支持 | 支持[1] | 支持:9 [2] [3] | 支持[4] | 支持 |
compositionupdate 之后 | 支持 | 支持 | 支持:12 | 支持 | 支持:15 | 支持 |
在contenteditable 元素上 | 支持 | 支持 | 支持:14 | 不支持 | 支持:15 | 支持 |
当designMode 是"on" | 支持 | ? | 支持:14 | 不支持 | 支持:15 | 支持 |
data | 支持 | ? | 不支持 | ? | ? | 支持 |
isComposing | 支持 | ? | 支持:31 | 不支持 | 不支持 | 不支持 |
在<select> 元素上 | 支持 | 不支持 | 支持:49 | 不支持 | ? | ? |
在类型checkbox 的<input> 元素上 | 支持 | ? | 支持:49 | 不支持 | 支持 | 不支持 |
在类型radio 的<input> 元素上 | 支持 | ? | 支持:49 | 不支持 | 支持 | 不支持 |
- 移动端
Android | Chrome for Android | Edge | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile | |
---|---|---|---|---|---|---|---|
基本支持 | 支持 | 支持 | 支持 | 支持 | ? | ? | 支持 |
compositionupdate 之后 | ? | ? | 支持 | 支持:12.0 | ? | ? | ? |
在contenteditable 元素上 | ? | (Yes) | ? | 支持:14.0 | ? | ? | 支持 |
当designMode 是"on" | ? | ? | ? | 支持:14.0 | ? | ? | ? |
data | ? | ? | ? | No support | ? | ? | ? |
isComposing | 不支持 | 不支持 | ? | 支持:31.0 | 不支持 | 不支持 | 不支持 |
在<select> 元素上 | ? | 支持 | ? | 不支持 | ? | ? | ? |
在类型checkbox 的<input> 元素上 | ? | ? | ? | ? | ? | ? | ? |
在类型radio 的<input> 元素上 | ? | ? | ? | ? | ? | ? | ? |
注释:
[1]在Gecko 12.0(Firefox 12.0 / Thunderbird 12.0 / SeaMonkey 2.9)之前,Gecko在使用IME进行合成或在macOS X上使用死键时没有发生input事件。
[2] 当用户从输入中删除字符时(例如,通过按Backspace或Delete,或使用“剪切”操作),IE 9不会触发input事件。
[3] IE 10和IE 11有一个错误,input事件触发占位符属性更改。
[4]在Opera 15之前,Opera 在输入字段中删除文本后没有触发input事件。