【问题标题】:How to retrieve keyCode and charCode from a jQuery event object?如何从 jQuery 事件对象中检索 keyCode 和 charCode?
【发布时间】:2023-04-05 00:28:02
【问题描述】:

javascript 事件对象提供 keyCode()charCode() 方法,以便 charCode() 为不支持的键返回 0导致显示字符,如回车、向上键、向下键、删除、退格等。

我想在 jQuery keypress 事件回调中准确检查这些字符,但 jQuery 事件对象不允许我访问上述方法。

我可以从 jQuery 中检索 js 事件对象吗?

【问题讨论】:

    标签: javascript jquery events keycode


    【解决方案1】:
    $('#yourid').bind('keypress', function(e) {
        var keycode= (e.keyCode ? e.keyCode : e.which);
            if(keycode == 13){
                    // Enter pressed... do anything here...
            }else if(keycode == 46){// delete
    
            }else if(keycode == 8){ // backspace
    
            }
    });
    

    Explorer 不会为 delete、end、enter、escape、功能键、home、insert、pageUp/Down 和 tab 触发按键事件。

    如果您需要检测这些键,请帮自己一个忙并在 onkeydown/up 上搜索它们的 keyCode,并忽略 onkeypress 和 charCode。

    【讨论】:

      【解决方案2】:

      关键代码列表在 Internet 上随处可见,尽管这里是为您完成的繁重工作,而不依赖于任何框架...

      if (window.addEventListener) {document.addEventListener('keydown',keyPressed,false);}
      else {document.attachEvent('onkeydown',keyPressed);}
      
      function keyPressed(evt)
      {
       var e = evt || event;
       var key = e.which || e.keyCode;
      
       if (!powerKeysEnabled) return;
       if (showmeallcodes) {alert( key); return;}
      
       switch (key)
       {
        case 77:// M
        alert('m key pressed');
        break;
      
        case 76://L
        alert('L key pressed');
        break;
       }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多