没有确切的方法,只能模拟绑定KeyPress事件,而且事件触发能通过按键的值。KeyPress事件主要用来捕获数字(注意:包括Shift+数字的符号)、字母(注意:包括大小写)、小键盘等除了F1-12、SHIFT、Alt、Ctrl、Insert、Home、PgUp、Delete、End、PgDn、ScrollLock、Pause、NumLock、{菜单键}、{开始键}和方向键外的ANSI字符。相关事件是keydown事件和keyup事件。相关的按键数字你可以网上找一下,如:enter =13 ,shift =16 。这样就可以知道是哪个按钮按下了。
js中的键盘事件包括 onkeydown 、 onkeyup 、 onkeypress
1、onkeydown
键盘按下后就会立即执行的事件,不管是数字键、字母键还是功能键都能触发这个事件。
onkeydown有个特点:键盘一直按下会不停地触发事件,连续触发时,第一次和第二次的触发时间间隔会比较长一点,后面触发速度就非常的快。这种设计是为了防止误 *** 作的发生。
2、onkeyup
键盘松开后立马执行的事件。
3、onkeypress
键盘按键被按下并释放一个键时执行。数字键、字母键能触发事件,但是功能键按下后不会触发这个事件,比如Esc、Tab、CapsLock、Shift、Ctrl、Alt、Delete、Backspace、四个方向键。
补充一些常用按键对应的Unicode编码:
Enter:13
space:32
Left:37
Up:38
Right:39
Down:40
先说问题吧,问题在于你每次点击input时候都给数字键盘绑定了click事件,这就导致在点击第二个input输入时,数字键盘已经绑定了2个click事件了,第一个input当然会输入了,解决方法就是在给数字键盘绑定click方法的时候取消前面的所有绑定
只要你定义了这些键的动作,你在浏览器里按下这些键就会响应,兼容目前所有浏览器。
<script type="text/javascript" language=JavaScript charset="UTF-8">
documentonkeydown=function(event){
var e = event || windowevent || argumentscalleecallerarguments[0];
if(e && ekeyCode==27){ // 按 Esc
//要做的事情
}
if(e && ekeyCode==113){ // 按 F2
//要做的事情
}
if(e && ekeyCode==13){ // enter 键
//要做的事情
}
};
以上就是关于怎样用js模拟键盘事件全部的内容,包括:怎样用js模拟键盘事件、键盘事件、哪位大神能帮我解决下js写的小键盘的一个小bug等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)