最近添加一登录,支持键盘Enter,以前一直用的是直接在文档上触发键盘事件,如下图:
这种方法是可以实现功能的。记得以前input type=text也可以触发,我改成type=button,重新刷新页面就不能触发了,写法如下:
<input type=‘button’ id='test-key'/>
$('#test-key').bind('keydown',function(){
console.log('trigger');
});
原因是没有focus,捕获不到activeElement,如果再点击一下就可以触发了。所以说键盘事件都有个前提:就是必须先获得焦点再触发,
除非是直接在文档上触发事件。
键盘事件有三个:keyup、keydown和keypress.
其中keyup和keydown是低级键盘事件,无论何时按下或释放按键,甚至是辅助键,都可以触发它们(注:PrtSc SysRq按键只能触发keyup,keyCode=44);
keypress是较高级的文本事件,只有数字、字母、运算符之类的才能触发,是在keydown和keyup之间时机触发。
keypress触发时获取的keyCode区分大小写,keyup和keydown是不区分的,例如A keyup、keydown、keypress都是65,而对于a keyup、keydown为65,keypress为97.