javascript - event.keycode 在 Firefox 中未返回正确的值

标签 javascript jquery events keypress keycode

我正在尝试使用以下代码来在输入框中按下空格键时触发js方法。

  <input id="j1" /> 

  $('#j1').keypress (function (event){
       alert(event.keycode)
  });

在 Firefox 中,仅当按下 enter 时才会返回正确的值,其他键每次返回的值都只是 0。在 IE/chrome 中,这工作得很好。

最佳答案

在非 IE 浏览器中,您需要在 keypress 事件中使用 whichcharCode 属性,而不是 keyCode属性。 keypress 事件用于检测键入的字符,而 keyupkeydown 用于检测物理按键(在这些事件中,keyCode 适用于所有主流浏览器)。

var charCode = (typeof event.which == "number") ? event.which : event.keyCode;

但是,jQuery 通过使用与此类似的代码来标准化按键事件的 which 属性,因此在 jQuery 中您只需要

var charCode = event.which;

有关关键事件的(很多)更多详细信息,请参阅 http://unixpapa.com/js/key.html .

关于javascript - event.keycode 在 Firefox 中未返回正确的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7330724/

相关文章:

javascript - JQuery live + Disqus/谷歌分析

javascript - 如何为所有输入字段添加额外的 Javascript 事件处理程序以记录点击+编辑?

javascript - 不符合预期的 Bootstrap 表

javascript - highcharts 隐藏除图例之外的图表

javascript - 我无法使用 Jquery Serialize 获取 Markdown 的值

php-mysql 数据表与数据表服务器处理 ssp.class.php 脚本

javascript - 将事件绑定(bind)到 jQuery.post 和回调

ajax - 取消 JSF ajax 调用

javascript - Three.js BufferGeometry变形

javascript - 检查鼠标在屏幕中的位置