onpropertychange事件和onchange有些类似,但是也有不同!
IE下,当一个HTML元素的属性改变的时候,都能通过onpropertychange来捕获。例如一个
<input name="text1" id="text1" />
对象的value属性被页面的脚本修改的时候,onchange无法捕获到,而onpropertychange却能够捕获。
也就是说:onpropertychange能及时捕获属性值的变化,而onchange在属性值改变时还必须使得当前元素失去焦点(onblur)才可以激活该事件!
如:
例1:
请输入图片地址: <input type="text" name="mytext" size="10" value="" onpropertychange="document.images['myimg'].src=this.value;" /> <img id="myimg" src="/img/common/logo.gif" alt="" />
当text框中的内容被改变时,图片就会立刻被显示出来。而如果用onchange时,改变其值时还需用鼠标单击空白或其他地方使input元素失去焦点(onblur)才能激活该事件,图片显示才会被改变!
onChange:当前元素失去焦点并且元素的内容发生改变而触发的事件 [鼠标与键盘的触发均可]
所以说当对象的value被脚本改变时不会触发onChange事件,因为用户即没有动鼠标又没动键盘.
PS:firefox 不支持onpropertychange
当元素的任何属性值被改变时均会触发onpropertychange,如:失去焦点、单击输入框等;有时我们只是需要在某个属性被改变时才想要执行onpropertychange中的事件,所以此时,我们需要用JS进行判断,是否为我们需要的属性发生了改变。
示例如下:
<input type="text" value="xxx" id="xx" onclick="this.myprop='xx'">
<script type="text/javascript">
<!--
document.getElementById('xx').attachEvent('onpropertychange',function(o){
if(o.propertyName!='value')return; //不是value改变不执行下面的操作
//是value改变,则执行函数处理
});
//-->
</script>
分享到:
相关推荐
与`onchange` 不同,`oninput` 不需要元素失去焦点就能检测到变化,它对键盘输入、剪贴板操作以及IME(输入法编辑器)输入等都有反应。`oninput` 是一个非常实用的事件,特别是在需要实时验证用户输入或更新UI的情况...
标题中的“onchange”和“onpropertychange”是JavaScript中两个与事件相关的属性,它们都是在HTML元素上触发特定行为的事件监听器。在本文中,我们将深入探讨这两个事件的区别、用法以及如何在实际开发中应用它们。...
在JavaScript中,`onchange` 和 `onpropertychange` 是两个不同的事件处理方式,它们各自在特定场景下有着不同的用途。本文将详细讲解这两个事件的区别以及如何解决 `onchange` 事件在某些情况下的无效问题。 `...
oninput 事件是 onpropertychange 事件的非 IE 浏览器版本,它可以检测当前对象的值变化,但是它与 onpropertychange 事件不同之处在于,它只在对象的值发生变化时触发事件,而不检测其他属性的变化。 在实际开发中...
在了解如何监听输入框值的即时变化之前,我们需要了解onChange 和 onpropertychange 的不同。onChange 在属性值转变时还必需使得当前元素失去焦点(onblur)才可以激活该事件,onpropertychange 则可以在IE下捕获元素...
在IE下,可以用onpropertychange来代替onchange事件,当文本框有任何变化时,能立即触发此事件. 这样一来问题就解决了. 那其他浏览器呢,onpropertychange可是IE的专利. 接下来就是oninput事件了. 但是oninput有个诡异,...
也就是说:onpropertychange事件在用键盘每改变一下文本框的值或用js改变其值便会触发一下,而onchange只有在用键盘改变其值,然后在失去焦点(onblur)后才触发,用js改变其值不能触发!onpropertychange和onchange都...
需要了解的知识 首先,我们需要了解onchange和onpropertychange的不同: IE下,当一个HTML元素的属性改变的时候,都能通过 onpropertychange来即时捕获。 onchange在属性值改变时还必须使得当前元素失去焦点(onblur...
对象的value属性被页面的脚本修改的时候,onchange无法捕获到,而onpropertychange却能够捕获。 具体理解为:onpropertychange能及时捕获属性值的变化,而onchange在属性值改变时只有通过鼠标执行某些操作才能激活该...
1.onchange 及其onpropertychange,oninput 在IE下可使用onpropertychangel立即触发监听, oninput 可以使用在FF下,但必须使用w3c推荐的addEventListener的方式来绑定事件. //www.jb51.net/article/25275.htm2. <...
由于onpropertychange事件在不同浏览器中的兼容性问题,如果我们要使用jQuery来绑定onpropertychange事件,就需要使用bind()方法。这是因为jQuery的$.fn.bind()是一个跨浏览器的绑定事件的方法,可以在不同浏览器中...
在JavaScript中,处理DOM元素状态变化的事件有多种,其中包括`onpropertychange`、`onchange`和`oninput`。这些事件在不同浏览器中有着不同的表现和兼容性,尤其是在Internet Explorer (IE) 和 Firefox之间。 `...
1. onchange事件与onpropertychange事件的区别: onchange事件在内容改变(两次内容有可能相等)且失去焦点时触发;onpropertychange事件是实时触发,每增加或删除一个字符就会触发,通过js改变也会触发该事件,但是...
然而,在不同浏览器中,onchange事件触发的时机和行为可能会有所不同,这可能会导致在某些浏览器下无法按预期工作。 在IE浏览器中,如果对一个checkbox元素的选中状态进行改变,onchange事件并不会立即触发,而是...
与onchange不同,oninput事件在用户输入时就会触发,即输入框的值发生变化的那一刻就会触发,非常适合需要实时反馈输入情况的场景。oninput事件在大多数现代浏览器中都得到支持,包括Firefox, Google Chrome, Opera,...