js键盘相关知识总结

摘要:
事件这对于某些键值也有效,例如字母键、数字键、回车键和退格键。它对上、下、左、右键、PgUp和PgDn键无效。KeyPress不区分键盘和主键盘、KeyDown和KeyUp的数字字符。

一、相应事件

keydown:按下键盘上的任意键都可触发,按着不放则重复触发

keypress:按下键盘上的字符键时触发,按着不放则重复触发

keyup:释放按键时触发

事件顺序:keydown>keypress>keypup

在文本框中捕获按键事件需要注意的地方:

1.keydown、keypress是在文本框内容变化前发生,keyup则是在文本框变化后发生。

 2.如果输入的是中文,keypress不会触发,改用dom3级的textInput事件(也就是必须通过addEventListener来监听)

二、如何获取按键值

在js获取键盘按下的键值有:event.keyCodeevent.charCodeevent.which

谷歌浏览器:event.keyCodeevent.charCodeevent.which都兼容。

火狐浏览器:event.keyCode部分键值有效,如上下左右键(37,38,39,40),enter键(13),PgUp(33),PgDn(34)等部分有效,对数字键,字母键无效。

event.which也是部分键值有效,如字母键,数字键,enter键,Backspace键等有效,对上下左右键,PgUp(33),PgDn(34)键无效。

event.charCode也是对部分键值有效,如字母键,数字键,,Backspace键等有效,对enter键,上下左右键,PgUp(33),PgDn(34)键无效。

ie浏览器:中,IE8及以下浏览器无event.charCode和event.whichevent.keyCode对大部分键值能获得,但是有少部分也不能获得

兼容性的写法如下:

var code=e.keyCode || e.which || e.charCode

三、该用什么事件来获取按键值

  • KeyDown触发后,不一定触发KeyUp,当KeyDown 按下后,拖动鼠标,那么将不会触发KeyUp事件。
  • KeyPress主要用来捕获数字(注意:包括Shift+数字的符号)、字母(注意:包括大小写)、小键盘等除了F1-12、SHIFT、Alt、Ctrl、Insert、Home、PgUp、Delete、End、PgDn、ScrollLock、Pause、NumLock、{菜单键}、{开始键}和方向键外的ANSI字符
  • KeyDown 和KeyUp 通常可以捕获键盘除了PrScrn所有按键(这里不讨论特殊键盘的特殊键)
  • KeyPress 只能捕获单个字符,KeyDown 和KeyUp 可以捕获组合键。
  • KeyPress 可以捕获单个字符的大小写,KeyDown和KeyUp 不能。
  • KeyPress 不区分小键盘和主键盘的数字字符,KeyDown 和KeyUp 区分。

总结:用keypress事件对象获取按键字符,用keydown事件获取功能字符(如Enter,Backspace等)

免责声明:文章转载自《js键盘相关知识总结》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇.net core开发 (一)JVM参数配置大全下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

每天一个linux命令(24):Linux文件类型与扩展名

Linux文件类型和Linux文件的文件名所代表的意义是两个不同的概念。我们通过一般应用程序而创建的比如file.txt、file.tar.gz ,这些文件虽然要用不同的程序来打开,但放在Linux文件类型中衡量的话,大多是常规文件(也被称为普通文件)。 一. 文件类型 Linux文件类型常见的有:普通文件、目录文件、字符设备文件和块设备文件、符号链接文件...

火狐浏览器(firefox)中js要注意的问题

1.出现错误调用error方法或者ajax请求了多次,那么极有可能是异步请求的原因。 添加async : false , ->async. 默认是 true,即为异步方式,$.ajax执行后,会继续执行ajax后面的脚本,直到服务器端返回数据后,触发$.ajax里的success方法,这时候执行的是两个线程。 -> async 设置为 fals...

linux基础知识-23

一、常识 (一) 文件 linux中将每个进程上下文之外需要保存的信息保存在文件中。linux采用简单模式保存信息,即信息以单一字节序列从头保存到尾。 序列的字节长度就是文件的长度。 文件中保存了什么?文本信息,图片信息,二进制信息等。 (二) 字节 8个位为一组,称为字节。即一个字节包含8个比特(bit)。每个bit值域{0,1},8位一共可以有2^8个...

Mysql中文检索匹配与正则

今天在用sql模糊查询包含字母d的时候,发现一些不包含此字母的也被查询出来了: SELECT * FROM custom WHERE custom_realname LIKE '%d%' 查询了一下,发现以下说明: (最后修改为: SELECT * FROM custom WHERE custom_realname LIKE BINARY '%d%...

oracle之字符集查看及其修改(转载)

当我们往表插入一些极限值的时候,比如一个title字段varchar(200) 标题的文字比如为101个字符的时候,就需要判断是否是16位的还是32位的了 一、什么是Oracle字符集        Oracle字符集是一个字节数据的解释的符号集合,有大小之分,有相互的包容关系。ORACLE 支持国家语言的体系结构允许你使用本地化语言来存储,处理,检索数据...

OC-字符串

     字符串 一.不可变字典:    1.字符串格式化处理 int age = 20; NSString *name = @"陈真"; NSString *info = [NSString stringWithFormat:@"%@今年%d",name,age];         NSLog(@"%@",info);    2.截取字典       ...