onchange与onpropertychange的联系与区别!

了解这两个东东缘于同事的一个需要联动的选择需求(select0改变select1,select1然后去改变select2).
上网查了好久,也看了别人一些例子.
最后试了试,竟然不用写额外的javascript function,使用onchange 和onPropertyChange就能搞定. 例子和解释如下:
<html>
<head><title></title></head>
<body>
<select id="t0" onChange="t1.options[this.value].selected=true">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
<select id="t1" onPropertyChange="t2.options[t1.options.selectedIndex+1].selected=true">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
</select>

<select id="t2">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
</select>
</body>
</html>

<!-- 可以把t0的onChange换成onPropertyChange 但不能把t1的onPropertyChange换成onChange
(如果这样的话,t0改变的时候只能改变t1不能改变t2,只有点击使t1改变才能使t2改变)
-->

先看这么一段解释:
onpropertychange:当在对象上进行属性改变时候触发
onchange:当对象内容或者选择内容改变时候触发

当一个HTML元素的属性改变的时候,都能通过onpropertychange来捕获。例如一个<input name="text1" id="text1" />对象的value属性被页面的脚本修改的时候,onchange无法捕获到,而onpropertychange却能够捕获。

具体可以狭义地理解为:onpropertychange能及时捕获属性值的变化,而onchange在属性值改变时只有通过鼠标执行某些操作才能激活该事件!

当text框中的内容被改变时,图片就会根据输入的路径立刻被显示出来。而如果用onchange时,改变其值时还需用鼠标单击空白或其他地方才能激活该事件,图片显示才会被改变!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值