3

下面的方法从 AZ 和 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 键组合的相应键时,我需要显示$ 或 % 。

4

4 回答 4

6

我会用这样的东西:

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

jsfiddle

于 2013-03-01T12:48:06.000 回答
2

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

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

这是一些代码,从 MDN 提供的示例中编辑onkeydown,用于检测按键键码。

这是使用此 SO post 的帮助更新为对 Firefox 友好的小提琴。如果您采用这种方式,JQuery 解决方案也可以工作。

$ 等于36

JavaScript 事件 KeyCode 测试页

这是相同的SO线程

于 2013-03-01T12:46:13.830 回答
2

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

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

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

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

感谢马塞尔·科佩尔

于 2013-03-01T12:52:15.410 回答
1

KeyDown的情况下TextBox,使用:

if (e.Shift && e.KeyCode == Keys.4) {
  //Your code here
}
于 2013-03-01T12:49:37.597 回答