Javascript keycode-ctrl键出错

Javascript keycode-ctrl键出错,javascript,keycode,Javascript,Keycode,我试图在按ctrl+enter键时调用函数。然而,ctrl键似乎不起作用 this.element.onkeydown = function(evt){ var e = evt || window.event; var keyCode = (window.event) ? e.which : e.keyCode; var keys = { 'shift' : e.shiftKey, 'ctrl

我试图在按ctrl+enter键时调用函数。然而,ctrl键似乎不起作用

    this.element.onkeydown = function(evt){
        var e = evt || window.event;
        var keyCode = (window.event) ? e.which : e.keyCode;
        var keys = {
            'shift' : e.shiftKey,
            'ctrl' : e.ctrlKey,
            'alt' : e.altKey,
            'enter' : 13,
        };
        console.log(keys['ctrl'],keys['enter']) //false,13
    }

我不明白为什么我的
ctrlKey
是假的。有人知道发生了什么吗?

onkeydown
会在按下每个键后被触发(换句话说,捕获多个按键不是首选方法)

要捕获多个按键事件,请使用
keydown
keypress

此外,您还需要捕获10和13个键码(Chrome中的键码是10)


那么,您希望它是
true
,因为您按下了
ctrl
键?似乎对我有用:我只是认为
false
表示出了问题。不,
false
表示未按下
ctrl
键。看见“[…]包含true或false,这取决于触发事件时是否按住ctrl键。”我知道了。谢谢@Felix Kling。没有解释的代码通常不是很有用。
this.element.keypress(function (e) {                                 
    var keyCode = (e.which ? e.which : e.keyCode);          

    if (keyCode === 10 || keyCode == 13 && e.ctrlKey) {
        console.log('success');
    }
}