博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JS中onpropertychange事件和onchange事件区别
阅读量:6215 次
发布时间:2019-06-21

本文共 1190 字,大约阅读时间需要 3 分钟。

hot3.png

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

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

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

转载于:https://my.oschina.net/u/3647620/blog/1552486

你可能感兴趣的文章
atomic integer operations P176
查看>>
springboot之HelloWorld
查看>>
python全栈_003_Python3运算符
查看>>
新maven项目创建JSP出现小红叉报错 javax.servlet.http.HttpServlet not found
查看>>
微信小程序列表加载更多
查看>>
leetcode笔记-1 twosum
查看>>
深浅拷贝
查看>>
sql查询重复记录、删除重复记录方法大全
查看>>
odoo开发笔记 -- 用户配置界面增加模块访问权限
查看>>
instanceof函数内部机制探析
查看>>
linux下phpstorm的快速安装
查看>>
批量删除和批量修改(参数使用list)
查看>>
前端通用框架可行性研究报告之弹窗
查看>>
数据转换
查看>>
IOS在一个程序中启动另一个程序
查看>>
Dubbo初探
查看>>
CDI Features
查看>>
Linux中安装Oracle jdk
查看>>
MFC界面伸缩
查看>>
笔记本搜不到路由无线信号
查看>>