input 输入框内的输入事件详细分析


Posted in Javascript onMarch 17, 2010

1.基础:本次分析原理就是在各个浏览器下input内容变化的时候触发事件的各种不兼容性.在ie下用onpropertychange事件,在其他浏览器里用input事件.
2.用例:对每个浏览器分别测试如下的情况:
?输入英文字母时?开启输入法时?大小写不同时?输入运算符时?按下tab键时?输入法中按下空格时?按下控制键时?复制粘贴时?删除文本时?等等
3.测试开始:(只标出特殊情况,没标出的表示正常触发,每次只触发一次事件)
chrome:
+开启输入法时,可以捕捉到输入事件.
+开启输入法的时候按下空格键,触发两次事件,猜测一次是空格触发的,一次是输入法改变输入框里的文本时触发的.
+开启输入法的时候,按下空格后,立即按下大写锁定,此后所有的输入事件都会被触发两次,原因不知.
+没有开启输入法的时候,方向键不会触发事件,但是开启输入法后,方向键可以触发事件.
+剪切和粘贴都会触发事件.+tab键不处罚事件,开启输入法时,按tab键触发事件.
+按住shift和其他键(例如:数字键),每输入一个字符触发两次事件.
Firefox:
+开启输入法时,不能扑捉到事件,但是按下空格时,可以触发两次事件.
+任何时候方向键都不触发事件.
+开启输入法的时候,按下空格后,立即按下大写锁定,此后所有的输入事件都会被触发两次,原因不知.
+按下tab键的时候不触发事件.++Firefox页面刷新的时候内容会被保留在输入框里.
+按住shift和其他键(例如:数字键),每输入一个字符触发两次事件.
opera:
+正常情况下,在输入框里按下tab键会触发一次事件,但是此后只要不刷新页面,tab键都不会再触发此事件.
+开启输入法后不会触发事件,开启后,方向键和tab键都不触发事件.
+开启输入法时,按下空格只触发一次事件,不会出现触发两次事件的情况.
+粘贴的时候触发事件,剪切的时候不触发
ie:
+输入法不会触发事件,按空格也都是只触发一次,方向键任何时刻都不触发.
+刷新页面的时候内容会留在input里,而且注意,不管input是不是空的,刷新页面后自动触发一次事件.
3.总结.
就一句话,差异很大.
注意input事件可以用在chrome,Firefox,opera里,但是只能用 addEventListener绑定,不能用ontype形式,而onpropertychange可以用on形式,也可以用attachEvent绑定

其它在线演示说明:https://3water.com/tools/keyboard_events.html

Javascript 相关文章推荐
JS 获取浏览器和屏幕宽高等信息的实现思路及代码
Jul 31 Javascript
Jquery动态更改一张位图的src与Attr的使用
Jul 31 Javascript
快速实现JS图片懒加载(可视区域加载)示例代码
Jan 04 Javascript
Angular.js ng-file-upload结合springMVC的使用教程
Jul 10 Javascript
vue组件详解之使用slot分发内容
Apr 09 Javascript
基于element-ui的rules中正则表达式
Sep 04 Javascript
详解从react转职到vue开发的项目准备
Jan 14 Javascript
js屏蔽退格键(backspace或者叫后退键与F5)
Feb 10 Javascript
Vue实现固定定位图标滑动隐藏效果
May 30 Javascript
微信小程序实现侧边分类栏
Oct 21 Javascript
js实现固定区域内的不重叠随机圆
Oct 24 Javascript
vue 动态生成拓扑图的示例
Jan 03 Vue.js
Jquery Ajax学习实例5 向WebService发出请求,返回泛型集合数据的异步调用
Mar 17 #Javascript
javascript中的undefined 与 null 的区别  补充篇
Mar 17 #Javascript
javascript+iframe 实现无刷新载入整页的代码
Mar 17 #Javascript
js select常用操作控制代码
Mar 16 #Javascript
js实现的日期操作类DateTime函数代码
Mar 16 #Javascript
javascript json2 使用方法
Mar 16 #Javascript
jQuery 选择器理解
Mar 16 #Javascript
You might like
PHP中将数组转成XML格式的实现代码
2011/08/08 PHP
PHP简单实现生成txt文件到指定目录的方法
2016/04/25 PHP
js页面跳转的问题(跳转到父页面、最外层页面、本页面)
2013/08/14 Javascript
Jquery+Ajax+PHP+MySQL实现分类列表管理(上)
2015/10/28 Javascript
jquery 点击元素后,滚动条滚动至该元素位置的方法
2016/08/05 Javascript
移动端js触摸事件详解
2016/09/18 Javascript
进阶之初探nodeJS
2017/01/24 NodeJs
微信小程序 JS动态修改样式的实现代码
2017/02/10 Javascript
利用JS如何计算字符串所占字节数示例代码
2017/09/13 Javascript
jQuery完成表单验证的实例代码(纯代码)
2017/09/30 jQuery
bootstrap时间控件daterangepicker使用方法及各种小bug修复
2017/10/25 Javascript
解决vue+element 键盘回车事件导致页面刷新的问题
2018/08/25 Javascript
vue解决一个方法同时发送多个请求的问题
2018/09/25 Javascript
vue2.0项目集成Cesium的实现方法
2019/07/30 Javascript
操作按钮悬浮固定在微信小程序底部的实现代码
2019/08/02 Javascript
JavaScript实现缓动动画
2020/11/25 Javascript
[47:55]Ti4第二日主赛事败者组 NaVi vs EG 1
2014/07/20 DOTA
[00:37]食人魔魔法师轮盘吉兆顺应全新至宝将拥有额外款式
2019/12/19 DOTA
Python操作Word批量生成文章的方法
2015/07/28 Python
Python 获取当前所在目录的方法详解
2017/08/02 Python
python3+dlib实现人脸识别和情绪分析
2018/04/21 Python
完美解决Pycharm无法导入包的问题 Unresolved reference
2018/05/18 Python
33个Python爬虫项目实战(推荐)
2019/07/08 Python
日本最新流行服饰网购:Nissen
2016/07/24 全球购物
瑞贝卡·泰勒官方网站:Rebecca Taylor
2016/09/24 全球购物
VICHY薇姿美国官方网站:欧洲药房第一的抗衰老品牌
2017/11/22 全球购物
牵手50新加坡:专为黄金岁月的单身人士而设的交友网站
2020/08/16 全球购物
铭立家具面试题
2012/12/06 面试题
简历上的自我评价怎么写
2014/01/28 职场文书
优秀党支部申报材料
2014/12/24 职场文书
工程部文员岗位职责
2015/02/04 职场文书
个人先进事迹总结
2015/02/26 职场文书
2015年幼儿园卫生保健工作总结
2015/05/12 职场文书
2016年七夕情人节宣传语
2015/11/25 职场文书
2019年公司卫生管理制度样本
2019/08/21 职场文书
15个值得收藏的JavaScript函数
2021/09/15 Javascript