Javascript keycode-ctrl键出错
我试图在按ctrl+enter键时调用函数。然而,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
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');
}
}