html input change,input与change事件区别

input与change事件区别属于前端实例代码,有关更多实例代码大家可以查看。

关于标题中两个事件的具体用法可以参阅如下两篇文章:

(1).input事件参阅JavaScript input 事件一章节。

(2).change事件参阅JavaScript change 事件一章节。

两个事件非常类似,甚至对于某些元素它们两者的表现完全相同。

它们都可以在元素的值或者内容发生改变时触发,但区别也是非常明显。

区别主要表现的如下两点:

(1).浏览器兼容。

(2).事件触发的时机。

(3).事件生效元素。

下面分别做一下介绍,以便在特定的需求选取恰当的事件。

一.浏览器兼容性:

(1).change事件兼容所有主流浏览器。

(2).input事件被IE9+和其他标准浏览器支持。

特别说明:propertychange事件与input事件类似,可以实时触发,但是仅IE支持。

所以可以利用propertychange事件input的事件的全兼容效果。

代码实例如下:

犀牛前端部落

window.οnlοad=function(){

let otxt=document.getElementById("txt");

let oshow=document.getElementById("show");

let count=0;

if(document.all){

otxt.onpropertychange=function(){

count=count+1;

oshow.innerHTML=count;

}

}

else{

otxt.οninput=function(){

count=count+1;

oshow.innerHTML=count;

}

}

}

上述代码实现了全兼容效果,能够实时计算出输入文本框字符的数量。

二.触发时机:

对于change事件:

(1).单行文本域与多行文本域,当修改它们的值后,并不能立即触发事件,而是焦点离开它们才能触发。

(2).单行文本域与多行文本域修改前与修改后的值不能相同,否则不能触发。

对于input事件:

(1).事件会同步触发,一旦值改变立即触发。

对于select下拉菜单、复选框和单选按钮等元素,只要它们的状态发生改变,两个事件都会触发,表现相同。

三.设置contenteditable为true的元素:

在HTML5之前,div等类似元素是不可编辑的,这几乎是定论。

但是在HTML5之后,一切都发生了改变。

只要为此类元素添加contenteditable属性(默认值为true),那么这些元素都变为可编辑的。

犀牛前端部落

#one,#two{

width:150px;

height:60px;

margin:5px;

background-color:#ccc;

}

window.οnlοad=function(){

let count=0;

one.οninput=function(){

show.innerHTML=++count+"input";

}

two.οnchange=function(){

show.innerHTML=++count+"change";

}

}

代码分析如下:

(1).首先将两个div元素设置为可编辑状态。

(2).然后两个div元素分别注册input与change事件。

(3).当编辑div元素中内容的时候,input事件会同步触发,然而change事件不会触发。

特别说明:id属性值由于在文档中是唯一的,所以可以直接作为对应的元素对象使用。

相关阅读:

(1).innerHTML属性可以参阅JavaScript innerHTML一章节。

(2).contenteditable属性可以参阅HTML contenteditable 属性一章节。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值