【问题标题】:Restricting Buttons with textAreas使用 textAreas 限制按钮
【发布时间】:2017-07-19 18:20:04
【问题描述】:

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

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

那么如何确保在选择 textArea 时不会发生键盘按下的功能?

【问题讨论】:

  • 检查event.target 是否为文本区域,或检查document.activeElement 是否为文本区域等。
  • 我明白你所说的 activeElement 和 target 是什么意思,但我不知道“is a textarea”的特定布尔值。你有什么建议吗?
  • "is a textArea" 的布尔值如下:if(document.activeElement.tagName === "TEXTAREA"){//do things}

标签: javascript html textarea


【解决方案1】:

您可以为所有文本区域和输入字段添加一个全局事件侦听器,以便在按下这些按钮时不返回任何内容

$(function(){
  $('textarea,input').on('keydown', function(e){
    if(e.keyCode===13 || e.keyCode==187 || e.keyCode===107 || e.keyCode===109 || e.keyCode==189 || e.keyCode==111 || e.keyCode===191) {
      return false;
    }
  })
})

然后您可以为每个键调用适当的函数。

【讨论】:

  • 这是一个绝妙的技巧,但我确实希望用户在 textArea 中写入时能够使用这些键:/
  • 我有点困惑。因此,当您专注于文本区域时,您不想输入这些字母,但还希望用户能够输入它们?
  • 我很抱歉。您确实回答了我发布的问题,但我写错了。
猜你喜欢
  • 1970-01-01
  • 2013-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-03
相关资源
最近更新 更多