Javascript addEventListener keyDown阻止输入可编辑

时间:2016-12-07 00:31:18

标签: javascript html

我一直在制作游戏,我想在画布旁边放一个输入框。我终于弄清楚了

<input type='text' id='input' value='asdf'>

阻止我能够编辑输入框

{{1}}

任何两种方法都有效的解决方案? 我已经尝试将addEventListener放在一个div周围 画布&#39;但除非我注释掉那段代码,否则它仍然无法正常工作。

1 个答案:

答案 0 :(得分:1)

您可以检查触发事件的元素是不是输入。

以下是对代码的更改:

var keys = {}
document.body.addEventListener("keydown", function(e){
  if (e.srcElement.nodeName !== 'INPUT') {
    e.preventDefault();
    keys[e.keyCode] = true; 
  }
});
document.body.addEventListener("keyup", function(e){
  if (e.srcElement.nodeName !== 'INPUT') {
    e.preventDefault();
    keys[e.keyCode] = false;    
  }
});
<input type='text' id='input' value='asdf'>

相关问题