【问题标题】:How to find out the key pressed on keyup or keypress event when dollar key is pressed按下美元键时如何找出在 keyup 或 keypress 事件上按下的键
【发布时间】:2013-02-15 23:21:59
【问题描述】:

以下方法返回 A-Z 和 0-9 中的任何键,当我按下 shift 键 + 4 时,它返回相同的代码 52。

function keyUpEvent(e)//onkeyup event
{
    var chr = String.fromCharCode(e.keyCode);//converts the keycode into a character
    alert(chr);//alerts the character
}

但是当按下带有 shift 键组合的相应键时,我需要显示 $ 或 %

【问题讨论】:

  • 说真的,标题不用写3遍。
  • 喜欢这个FIDDLE ???
  • 好的,下次我会更正它。但是 Stackoverflow 不允许提交简短的问题。这就是为什么我让它更长..对不起..

标签: javascript jquery keypress onkeyup


【解决方案1】:

我会选择这样的:

$(function () {
    $(document).on('keyup keydown keypress', function (event) {
        if (event.keyCode == 52 && event.shiftKey) {
            alert('foo');
        }
    });
});

jsfiddle

【讨论】:

    【解决方案2】:

    键码仅与键相关。 $ 是一个字符,通过 Shift 和 4 两个键实现。$ 没有明确的键码使用onkeydown

    编辑:爱德华指出onkeypress 使用组合键,并且确实有组合键。每天学习新东西:)

    Here's some code,编辑自 MDN 提供的 onkeydown 示例,用于检测按键键码。

    Here's the fiddle 更新为对 Firefox 友好,使用来自 this S.O. post 的帮助。 JQuery 解决方案也可以,如果你那样做的话。

    $ 等于36

    JavaScript Event KeyCode Test Page

    这里也是S.O thread

    【讨论】:

    【解决方案3】:

    您不能同时检查两个关键事件。您可以尝试 e.shiftKey ,它会告诉您在事件发生时是否按下了 shift 键。试试看:

    if(e.keyCode === 53 && e.shiftKey){}
    

    如果你有一个文本字段,那么你可以在键输入时附加事件并检查“%”。

    https://developer.mozilla.org/en-US/docs/DOM/event.shiftKey

    感谢马塞尔·科佩尔

    【讨论】:

    • 有一个e.shiftKey;见unixpapa.com/js/key.html。此答案假定在 5 之前立即按下了 Shift 键,但可能按下了中间键,或者在按下 5 之前可以释放 Shift 键。
    • 是的。非常正确。触发事件时必须按下 shift 键。
    • 是的,你不能用你的伪代码确定它是否仍然关闭。请改用e.shiftKey
    【解决方案4】:

    TextBoxKeyDown 事件中,使用:

    if (e.Shift && e.KeyCode == Keys.4) {
      //Your code here
    }
    

    【讨论】:

    • 请确保您在keydown 事件上执行此代码,因为IE 不支持keypress 事件。
    • 好的..我正在 onKeyUp 事件中尝试它..它没有工作
    • 这不是答案。正如其他人所提到的,事件具有shiftKey 属性,但没有Shift(甚至也没有shift)属性,并且它们具有keyCode 属性但没有KeyCode 属性。而且,据我所知,也没有浏览器具有 Keys 全局变量。
    猜你喜欢
    • 2017-03-08
    • 1970-01-01
    • 2012-03-11
    • 1970-01-01
    • 2012-08-06
    • 1970-01-01
    • 2015-10-01
    • 2012-03-14
    相关资源
    最近更新 更多