有时候咱们须要捕获页面上的回车事件,以达到一些特殊效果,例如在登陆页面用户输入完登陆名和密码后习惯直接敲回车,这时须要捕获回车事件,在回车事件中激活form元素chrome
首先要捕获 document对象的按钮弹起事件(捕获按下事件也能够),浏览器会将用户按下的按键信息对象传递到事件回调函数中(以参数的形式),传入函数中的这个按键信息中包含了一个用来识别按键的编号(每一个按键都有一个对应的编号),而回车按键对应的编号就是13,因此咱们取出按键信息对象中的这个编号,判断它是否是13就能够了,初始版本以下:浏览器
1 document.onkeyup = function (e) {//按键信息对象以函数参数的形式传递进来了,就是那个e 2 var code = e.charCode || e.keyCode; //取出按键信息中的按键代码(大部分浏览器经过keyCode属性获取按键代码,但少部分浏览器使用的倒是charCode) 3 if (code == 13) { 4 //此处编写用户敲回车后的代码 5 } 6 }
可这样有个问题,在旧版IE下,按键信息对象并非直接传递到函数中的,全部的事件对象是存储在window.event中的,因此为了兼容旧版IE,咱们能够先判断一下window.event这个对象存在不存在,若存在,说明是旧版IE浏览器,若是不存在,说明是chrome、火狐之类的新式浏览器,改良版以下:函数
document.onkeyup = function (e) { if (window.event)//若是window.event对象存在,就以此事件对象为准 e = window.event; var code = e.charCode || e.keyCode; if (code == 13) { //此处编写用户敲回车后的代码 } }
思路和纯JavaScript代码相似,不过Jquery实现起来可能更简单一些,由于Jquery自己就已经在某些方面作了浏览器兼容性设置,因此代码会比较简洁一些spa
1 $(document).keyup(function (e) {//捕获文档对象的按键弹起事件 2 if (e.keyCode == 13) {//按键信息对象以参数的形式传递进来了 3 //此处编写用户敲回车后的代码 4 } 5 });
转自:曾经最美的记忆code