键盘之keydown,keyup,keypress事件
发布网友
发布时间:2022-11-21 02:13
我来回答
共1个回答
热心网友
时间:2024-10-30 07:51
经常使用键盘事件的时候,总会考虑到用那个键盘监听事件,但是具体用那个还是需要注意下,下面总结了百度上常用的一些注意点
keydown:当用户按下键盘上的任意键时触发,如果按住不放的话,会重复触发此事件;
keypress:当用户按下键盘上的字符键时触发,如果按住不让的话,会重复触发此事件;
keyup:当用户释放键盘上的字符键时触发。
keypress 返回的是输入的字符的ASCII码,也就是KeyAscii
keyDown返回的是键盘码,2者是不同的
另外keyypress只在按下字符键的时候才触发,按下F5之类的键则不触发(但keydown、keyup可以)。
比如F11, F2等,这些都没有对应的ASCII码,所以keypress 事件无法得到数据,而keyDown可以返回其对应的键盘码
keydown、keypress、事件触发在文字还没敲进文本框,就像上面的keypress事件,只是按下字符键,显示的结果,即得到的是触发键盘事件前的文本。而keyup是事件触发整个键盘事件的操作已经完成,获得的是触发键盘事件后的文本。
在keyup事件中无法阻止浏览器默认事件,因为在keypress时,浏览器默认行为已经完成,即将文字输入文本框(尽管这时还没显示),这个时候不管是preventDefault还是return false,都不能阻止在文本框中输入文字的行为,如要阻止在文本框中输入文字,必须在keydown或keypress时阻止
ex: