IE9的一个BUG:propertychange和input事件在拖拽 / 剪切 / 删除时无法触发
来源:互联网 发布:淘宝好评可以改差评吗 编辑:程序博客网 时间:2024/04/29 23:27
在做一个及时校验文本框输入的程序时,发现IE9这个问题,GOOGLE一下,发现也有其他人碰到了。
通常,为了最及时的获取用户对于文本输入框内容的改变,非IE浏览器、IE9以上浏览器,可以使用input事件,这个事件是最理想的一个处理方式。
对于IE6/7/8这些旧IE浏览器,通过propertychange事件也能处理。
IE9同时支持propertychange和input,却同时存在BUG。
改变输入框内容的行为有多种,主要有:
1.键盘输入(可通过keyup事件处理,但有按键不一定有改变输入的行为)
2.鼠标拖拽(可通过dragend / drop事件处理)
3.剪切(可通过cut事件处理,剪切可以通过快捷键也可以通过浏览器菜单,所以keydown/keyup靠不住)
4.粘贴(可通过paste事件处理,粘贴可以通过快捷键也可以通过浏览器菜单,所以keydown/keyup靠不住)
5.删除(悲催,并没有一个delete事件,如果是按键来删除还好办,如果是通过上下文菜单来删除,IE9下,propertychange和input都不会触发)
IE9的问题在于:
1. 按键BackSpace / 按键Delete / 拖拽 / 剪切 / 删除,不会触发propertychange和input事件
2. addEventListener绑定的propertychange事件任何情况都不会触发,但attachEvent绑定的propertychange事件则在除问题1之外的情况下能够触发。
3. 基于问题2的原因,使用jQuery绑定的propertychange事件在IE9下永远不会触发,因为它是调用addEventListener来绑定的。
要完美的处理IE9的文本框输入内容改变事件,就只剩下很丑陋的定时处理了,每隔多少个毫秒检测一次。
- IE9的一个BUG:propertychange和input事件在拖拽 / 剪切 / 删除时无法触发
- 定时器解决IE9中propertychange和input事件在拖拽、剪切、删除时无法触发
- input和propertychange事件
- input propertychange事件,当input的value值发生改变时触发(文本框的值即时搜索)
- 关于input框change事件和propertychange事件的区别
- 前端即时搜索的触发(input propertychange)
- 即时搜索input propertychange的bug
- propertychange/input事件
- js keyup事件 在安卓和苹果手机不同使用 input propertychange
- 即时搜索的input和propertychange方法
- 即时搜索的input和propertychange方法
- 即时反应的input和propertychange方法
- 即时反应的input和propertychange方法
- input 中onChange属性无法触发bug
- Ajaxfileupload 在IE9下用按钮触发file上传控件,请求无法触发的问题
- chrome下input:file无法触发click事件的问题
- 解决动态生成input无法触发click事件的问题
- 解决动态生成input无法触发click事件的问题
- ubuntu vim+ctags+taglist+cscope
- 如何删除dede中自定义的字段
- [android] Android的进程需不需要杀掉???????????
- Java中的异常
- eclipse对Tomcat远程调试
- IE9的一个BUG:propertychange和input事件在拖拽 / 剪切 / 删除时无法触发
- Oracle分页查询语句
- java 内存泄露 和 解决办法
- 数据库索引
- Linux平台Makefile文件的编写基础篇
- 编程题
- C++程序设计实验报告(8-1)
- 迷茫~IT这条路我该如何前进
- 查表空间使用率,最简单是查dba_tablespace_usage_metrics