Javascript 为什么按下Alt键时会引发html input onBlur事件?
我发现每次按Alt键时,html输入onBlur事件都会出现。 有人知道为什么,以及如何预防吗 UPD: 我用这个模拟页面来测试Javascript 为什么按下Alt键时会引发html input onBlur事件?,javascript,html,Javascript,Html,我发现每次按Alt键时,html输入onBlur事件都会出现。 有人知道为什么,以及如何预防吗 UPD: 我用这个模拟页面来测试 <!DOCTYPE html> <html> <head> <script> var init = function(){ var element = document.querySelector("#InputID"); element.onkeyup = function(e){ v
<!DOCTYPE html>
<html>
<head>
<script>
var init = function(){
var element = document.querySelector("#InputID");
element.onkeyup = function(e){
var key = e.keyCode || e.which;
if(key==18) {
console.log('alt')
e.preventDefault();
}
};
element.onblur = function(e){
console.log('blur')
};
}
</script>
</head>
<body onload="init()">
<input type="text" id="InputID">
</body>
</html>
var init=函数(){
var元素=document.querySelector(“#InputID”);
element.onkeyup=函数(e){
var key=e.keyCode | | e.which;
如果(键==18){
console.log('alt')
e、 预防默认值();
}
};
element.onblur=函数(e){
console.log('blur')
};
}
如果我按Alt log,则如下所示(即使我将onkeyup更改为onkeydown):
“模糊”
“alt”在Windows系统上,窗口将按下
alt
键解释为想要打开窗口的菜单,并使当前输入有效地模糊您的输入
您可以使用preventDefault
来阻止此操作
var element = document.querySelector("#InputID");
element.onkeyup = function(e){
var key = e.keyCode || e.which;
if(key===18) {
e.preventDefault();
}
};
18是alt
虽然它似乎在IE上仍然会引起模糊@PatrickEvans-我不常这么说,但这应该是一个答案,而不是一个评论:)谢谢你的回答,但这对我不起作用:(.看起来像是在上键甚至下键之前触发的模糊events@user2753903,您使用的是什么浏览器?我使用chrome,但在firefox中也会发生这种情况。在opera blur中,不会触发。@user2753903在chrome和firefox中对我起作用。编辑您的问题以显示您如何使用代码。@user2753903似乎无法重现它在chrome中不起作用或者firefox,即使使用问题中显示的确切代码。