1

我发现每次按 Alt 键时 html 输入 onBlur 事件都会上升。有谁知道为什么,以及如何预防?

升级版:

我使用这个简单的页面进行测试。

<!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>

如果我按 Alt 日志看起来像这样(即使我将 onkeyup 更改为 onkeydown):

'模糊'

'alt'

4

1 回答 1

3

在 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 上它仍然触发模糊

于 2013-09-06T10:22:49.667 回答