js捕获页面回车事件

有时候我们需要捕获页面上的回车事件,以达到一些特殊效果,例如在登录页面用户输入完登录名和密码后习惯直接敲回车,这时需要捕获回车事件,在回车事件中激活form元素的submit动作


1.纯JavaScript版

首先要捕获 document对象的按钮弹起事件(捕获按下事件也可以),浏览器会将用户按下的按键信息对象传递到事件回调函数中(以参数的形式),传入函数中的这个按键信息中包含了一个用来识别按键的编号(每个按键都有一个对应的编号),而回车按键对应的编号就是13,所以我们取出按键信息对象中的这个编号,判断它是不是13就可以了,初始版本如下:

document.onkeyup = function (e) {//按键信息对象以函数参数的形式传递进来了,就是那个e
    var code = e.charCode || e.keyCode;  //取出按键信息中的按键代码(大部分浏览器通过keyCode属性获取按键代码,但少部分浏览器使用的却是charCode)
    if (code == 13) {
        //此处编写用户敲回车后的代码
    }
}

可这样有个问题,在旧版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) {
        //此处编写用户敲回车后的代码
    }
}


2.Jquery版
思路和纯JavaScript代码类似,不过Jquery实现起来可能更简单一些,因为Jquery本身就已经在某些方面做了浏览器兼容性设置,所以代码会比较简洁一些

$(document).keyup(function (e) {//捕获文档对象的按键弹起事件
    if (e.keyCode == 13) {//按键信息对象以参数的形式传递进来了
        //此处编写用户敲回车后的代码
    }
});



你可能感兴趣的:(JavaScript,javascript)