【问题标题】:Disabling Keyboard Events when using a textArea使用 textArea 时禁用键盘事件
【发布时间】:2017-07-19 20:04:30
【问题描述】:

我的网站旨在通过按下键盘上的按钮进行导航:enter\+- kbd>等...我的问题是我有textAreas,当我按下这些按钮时,如果选择了textArea,则打字和按钮同时工作。

我认为解决此问题的最佳方法是使用某种布尔值。我尝试使用if(!x.hasFocus()){ allow buttons to be used},但这个布尔值仅适用于整个文档而不是特定的文本区域。

那么,如何仅当用户当前正在访问 textArea 时才禁用键盘按下的事件侦听器?

我希望用户在使用textArea,但是一旦没有使用 textArea,这些按钮应该执行某些功能,我正在使用 addEventListener("keyup", function(){...});

【问题讨论】:

  • 您可能想查看event.stopPropagation()。以这样一种方式使用,以使事件在到达 textArea 元素时停止冒泡。
  • 我意识到我可以在检查 document.activeElement.tagNames === "TEXTAREA" 时使用 if 语句

标签: javascript html textarea


【解决方案1】:
 document.addEventListener("keyup", function(event){
      var typing;
      if(document.activeElement.tagName === "TEXTAREA"){
        typing = true;
       } else{typing = false;}

      if(document.getElementById("body").style.display === "block" && 
document.getElementById("middle").style.display === "none"){
        if(counter < divs.length && event.keyCode === 187 && !typing){
          //do things
        }
      }

【讨论】:

    猜你喜欢
    • 2023-03-16
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-03
    • 2011-09-14
    • 2012-03-27
    • 2013-05-10
    相关资源
    最近更新 更多