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 相关文章推荐
jquery根据name属性查找的小例子
Nov 21 Javascript
jquery判断元素是否隐藏的多种方法
May 06 Javascript
js语法学习之判断一个对象是否为数组
May 13 Javascript
JS实现控制表格行文本对齐的方法
Mar 30 Javascript
JavaScript中将数组进行合并的基本方法讲解
Mar 07 Javascript
vue.js实现请求数据的方法示例
Feb 07 Javascript
基于react组件之间的参数传递(详解)
Sep 05 Javascript
百度地图去掉marker覆盖物或者去掉maker的label文字方法
Jan 26 Javascript
React Native 混合开发多入口加载方式详解
Sep 23 Javascript
解决echarts echarts数据动态更新和dataZoom被重置问题
Jul 20 Javascript
vue实现下拉菜单树
Oct 22 Javascript
vue项目如何监听localStorage或sessionStorage的变化
Jan 04 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
我常用的几个类
2006/10/09 PHP
PHP eval函数使用介绍
2013/12/08 PHP
PHP实现获取某个月份周次信息的方法
2015/08/11 PHP
PHP 中 Orientation 属性判断上传图片是否需要旋转
2015/10/16 PHP
JQuery 应用 JQuery.groupTable.js
2010/12/15 Javascript
JS仿flash上传头像效果实现代码
2011/07/18 Javascript
JQuery获取浏览器窗口内容部分高度的代码
2012/02/24 Javascript
Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
2013/11/14 Javascript
js获取时间(本周、本季度、本月..)
2013/11/22 Javascript
JQuery中阻止事件冒泡几种方式及其区别介绍
2014/01/15 Javascript
jQuery基于ajax()使用serialize()提交form数据的方法
2015/12/08 Javascript
用js制作淘宝放大镜效果
2020/10/28 Javascript
Bootstrap多级菜单的实现代码
2017/05/23 Javascript
微信小程序tabBar模板用法实例分析【附demo源码下载】
2017/11/28 Javascript
vue 组件高级用法实例详解
2018/04/11 Javascript
微信小程序项目总结之记账小程序功能的实现(包括后端)
2019/08/20 Javascript
JavaScript canvas实现雪花随机动态飘落
2020/02/08 Javascript
python正则分组的应用
2013/11/10 Python
python爬取NUS-WIDE数据库图片
2016/10/05 Python
Python3中内置类型bytes和str用法及byte和string之间各种编码转换 问题
2018/09/27 Python
Python网络爬虫之爬取微博热搜
2019/04/18 Python
python射线法判断检测点是否位于区域外接矩形内
2019/06/28 Python
pandas读取CSV文件时查看修改各列的数据类型格式
2019/07/07 Python
Python的轻量级ORM框架peewee使用教程
2021/02/05 Python
CSS3 clip-path 用法介绍详解
2018/03/01 HTML / CSS
用CSS3实现无限循环的无缝滚动的示例代码
2017/11/01 HTML / CSS
降消项目实施方案
2014/03/30 职场文书
马丁路德金演讲稿
2014/05/19 职场文书
高中班级口号
2014/06/09 职场文书
社区四风存在问题及整改措施
2014/10/26 职场文书
2015年小学美术工作总结
2015/05/25 职场文书
企业党建工作总结2015
2015/05/26 职场文书
汤姆索亚历险记读书笔记
2015/06/29 职场文书
FP-growth算法发现频繁项集——构建FP树
2021/06/24 Python
海康机器人重磅发布全新算法开发平台VM4.2
2022/04/21 数码科技
Linux中一对多配置日志服务器的详细步骤
2022/07/23 Servers