某某茶叶有限公司欢迎您!
金沙棋牌在线 > 服务器&运维 > js中的onchange和onpropertychange

js中的onchange和onpropertychange

时间:2019-12-01 06:52

笔者注:今天我在用到onchange事件时没有任何反应,最后翻查资料才知道Onchange的局限性和不稳定性。而onpropertychange却能很好的实现尤其是它的实时捕捉性能更是很值得用一下(幸亏有这个性能,做出的东西老板娘很满意 o。

 这篇文章主要介绍了js中的onchange和onpropertychange (onchange无效的解决方法),需要的朋友可以过来参考下,希望对大家有所帮助

也就是说:onpropertychange事件在用键盘每改变一下文本框的值或用js改变其值便会触发一下,而onchange只有在用键盘改变其值,然后在失去焦点后才触发,用js改变其值不能触发!onpropertychange和onchange都不管文本框中的实际值有没有变,只要有改的相应操作就可能触发。有时当上面两时间都不能满足需求时,可以考虑只用onblur。 还有一点要注意到,当onblur和onchange事件一起用时,onblur会出问题。。。。详见如下 测试页面:

本人也比较懒,自己做的东西也懒的整理下来只能把搜索到的资料原版拿来个大家分享一下:

笔者注:今天我在用到onchange事件时没有任何反应,最后翻查资料才知道Onchange的局限性和不稳定性。而onpropertychange却能很好的实现尤其是它的实时捕捉性能更是很值得用一下(幸亏有这个性能,做出的东西老板娘很满意 o(∩_∩)o...)。   本人也比较懒,自己做的东西也懒的整理下来只能把搜索到的资料原版拿来个大家分享一下:   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)才能激活该事件,图片显示才会被改变!   例2:   <INPUT id="image" style="WIDTH: 448px; HEIGHT: 22px"     onpropertychange="preview.src=image.value" type="file" size="55" name="File1" runat="server">   <IMG id="preview" height="170" alt="" src="" width="256">   ----------------------------------------------------------------   onpropertychange事件太可爱了,我对它一见钟情   onChange:当前元素失去焦点并且元素的内容发生改变而触发的事件 [鼠标与键盘的触发均可]   所以说当对象的value被脚本改变时不会触发onChange事件,因为用户即没有动鼠标又没动键盘.  

通过js改变文本框中的值后触发的事件:onpropertychange事件

IE下,当一个HTML元素的属性改变的时候,都能通过 onpropertychange来捕获。例如一个

(onchange无效的解决方法),需要的朋友可以过来参考下,希望对大家有所帮助 笔者注:今天...

测试onpropertychange事件和onchange事件一起用时: 测试结果:onpropertychange事件在用键盘每改变一下文本框的值或用js改变其值便会触发一下,而onchange只有在用键盘改变其值,然后在失去焦点后才触 发,用js改变其值不触发 测试只有onblur和onchange事件时: 测试结果:onchange先触发,onblur后触发 测试当onblur和onpropertychange事件一起用时: 测试结果:onblur好象出了问题,只要用键盘在文本框中随便输入一个值,便会触发它。可能是onpropertychange把它惹毛了。。。^-^ 测试有onblur、onpropertychange事件和onchange事件一起用时: 测试结果:onblur在和onpropertychange一起用时的问题仍然存在

对象的value属性被页面的脚本修改的时候,onchange无法捕获到,而onpropertychange却能够捕获。

[Ctrl+A 全选 注:如需引入外部Js需刷新才能执行]

也就是说:onpropertychange能及时捕获属性值的变化,而onchange在属性值改变时还必须使得当前元素失去焦点才可以激活该事件!