jquery keypress事件浏览器兼容性

  今天在做“财务管理系统”的时候,使用jquery的ajax从前台传递用户输入到后台,并保存到数据库,但是在前台为了界面的简介和一致性,没有使用按 钮来实现"确定"和"取消"功能,而是使用jquery的keypress键盘事件:enter代表确定,esc代表取消。

但是在测试的时候发现使用event.which获取键盘代码并不能识别esc键,火狐、IE、谷歌浏览器表现出强烈的不一致性,换成 event.keyCode倒是在火狐下可以识别了,但是IE和谷歌还是不行,后来在网上查找资料,看了一篇文章,文章中提到在谷歌浏览器中不能使用 keypress事件,因为它不识别esc等功能键的键盘码,需要使用keyup事件,然后就换成keyup事件,测试果然通过。

而且keyup事件在火狐、IE和谷歌浏览器中都可以监听到esc等功能键的键盘码,在获取键盘码的时候只需要使用event.which就可以,不需要code = (event.which)? event.which:event:keyCode。