codecamp

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不支持支持不支持
  • 移动端

AndroidChrome for AndroidEdgeFirefox Mobile (Gecko)IE MobileOpera MobileSafari 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事件。

EventTarget事件:focusout
EventTarget事件:keydown
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

Fetch API官方文档指南

Fetch API方法

WindowOrWorkerGlobalScope执行者:window

window属性

WindowOrWorkerGlobalScope执行者:WorkerGlobalScope

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }