【问题标题】:What elements have their own keypress handlings?哪些元素有自己的按键处理?
【发布时间】:2019-04-08 17:24:44
【问题描述】:

我有一段以这个开头的代码:

 document.addEventListener('keyup',
                function (e) {
                    // I DO NOT WANT TO HANDLE INPUT FROM THESE
                    if (["INPUT", "SELECT", "TEXTAREA"].includes(e.target.tagName)) return;
                    //... do stuff with keypresses here
                });

这当然会监视整个文档上的 keyup 事件,以在按下 Enter 键时触发特殊事件——我主要将其用于条形码扫描,因为我的条形码扫描仪设置为输入键,然后按 ENTER。

所以我已对其进行了设置,以便在专注于 INPUT、SELECT 和 TEXTAREA 元素时按下键时它不会触发我的特殊事件,因为通常我希望以他们自己的方式处理这些事件。

是否还有其他我应该注意的 html 元素以自己的方式处理关键事件?

【问题讨论】:

  • <iframe> 呢?
  • 哦,好问题,我不确定我是否需要处理这个问题

标签: javascript html


【解决方案1】:

你要找的是list of focusable elements:

  • HTMLInputElement
  • HTMLSelectElement
  • HTMLTextAreaElement
  • HTMLAnchorElement
  • HTMLButtonElement
  • HTMLAreaElement

注意ButtonAnchor只能监听enter按键,所以你可能不需要这个异常

【讨论】:

  • 太棒了。我的应用程序的工作方式,我肯定要考虑按钮,但我不应该把它们和输入、文本区域等一样对待。你的回答给了我需要把它绑起来的提示——我需要做的最后一件事是在检测到条码扫描时使锚点和按钮失焦(但在没有扫描时允许 Enter 正常通过)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多