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 相关文章推荐
JavaScript中的View-Model使用介绍
Aug 11 Javascript
JavaScript高级程序设计 客户端存储学习笔记
Sep 10 Javascript
javascript 对象数组根据对象object key的值排序
Mar 09 Javascript
详解addEventListener的三个参数之useCapture
Mar 16 Javascript
Jquery中request和request.form和request.querystring的区别
Nov 26 Javascript
jQuery实现选项卡切换效果简单演示
Dec 09 Javascript
在Linux系统中搭建Node.js开发环境的简单步骤讲解
Jan 26 Javascript
理解javascript异步编程
Jan 27 Javascript
微信小程序 Page()函数详解
Oct 17 Javascript
jQuery中hover方法搭配css的hover选择器,实现选中元素突出显示方法
May 08 jQuery
JQuery实现图片轮播效果
May 08 jQuery
vue实现禁止浏览器记住密码功能的示例代码
Feb 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
这部好评如潮的动漫 知名梗频出 但是画风劝退很多人
2020/03/08 日漫
从Web查询数据库之PHP与MySQL篇
2009/09/25 PHP
Search File Contents PHP 搜索目录文本内容的代码
2010/02/21 PHP
php中文乱码问题的终极解决方案汇总
2017/08/01 PHP
学习ExtJS(一) 之基础前提
2009/10/07 Javascript
js注意img图片的onerror事件的分析
2011/01/01 Javascript
js中获取事件对象的方法小结
2011/03/13 Javascript
鼠标滚轴控制文本框值的JS代码
2013/11/19 Javascript
jquery easyui 对于开始时间小于结束时间的判断示例
2014/03/22 Javascript
js树插件zTree获取所有选中节点数据的方法
2015/01/28 Javascript
javascript遇到html5的一些表单属性
2015/07/05 Javascript
使用Javascript实现选择下拉菜单互移并排序
2016/02/23 Javascript
jQuery过滤选择器用法示例
2016/09/12 Javascript
js仿小米手机上下滑动效果
2017/02/05 Javascript
JavaScript严格模式下关于this的几种指向详解
2017/07/12 Javascript
jQuery实现的点击标题文字切换字体效果示例【测试可用】
2018/04/26 jQuery
微信小程序上传文件到阿里OSS教程
2019/05/20 Javascript
简单了解微信小程序的目录结构
2019/07/01 Javascript
JS监听组合按键思路及实现过程
2020/04/17 Javascript
jQuery实现评论模块
2020/08/19 jQuery
Python中optparse模块使用浅析
2015/01/01 Python
Python Web框架Flask中使用百度云存储BCS实例
2015/02/08 Python
一步步解析Python斗牛游戏的概率
2016/02/12 Python
Flask数据库迁移简单介绍
2017/10/24 Python
儿童编程python入门
2018/05/08 Python
详解Python多线程下的list
2020/07/03 Python
解决pytorch 交叉熵损失输出为负数的问题
2020/07/07 Python
Python 如何操作 SQLite 数据库
2020/08/17 Python
Python3读写ini配置文件的示例
2020/11/06 Python
澳大利亚优质葡萄酒专家:Vintage Cellars
2019/01/08 全球购物
超市业务员岗位职责
2013/12/05 职场文书
给老婆的搞笑检讨书
2014/01/12 职场文书
党员党性分析材料
2014/02/17 职场文书
成绩单公证书
2014/04/10 职场文书
圣诞节活动策划方案
2014/06/09 职场文书
区域经理岗位职责
2015/02/02 职场文书