js中的onchange和onpropertychange (onchange无效的解决方法)

2019-12-23,,,,

笔者注:今天我在用到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防止DIV布局滚动时闪动的解决方法
  • js实现window.open不被拦截的解决方法汇总
  • js onmousewheel事件多次触发问题解决方法
  • Ajax局部更新导致JS事件重复触发问题的解决方法
  • js自动生成的元素与页面原有元素发生堆叠的解决方法
  • php ci框架中加载css和js文件失败的原因及解决方法
  • php中json_encode处理gbk与gb2312中文乱码问题的解决方法
  • js处理php输出时间戳对不上号的解决方法
  • ajax跨域请求js拒绝访问的解决方法
  • 页面js遇到乱码问题的解决方法是和无法转码的情况
  • js 赋值包含单引号双引号问题的解决方法
  • js中style.display=""无效的解决方法

《js中的onchange和onpropertychange (onchange无效的解决方法).doc》

下载本文的Word格式文档,以方便收藏与打印。