EventListener输入密钥

Jer*_*emy 30 javascript

是否有addEventListenerEnter关键?

我有

document.querySelector('#txtSearch').addEventListener('click', search_merchants);
Run Code Online (Sandbox Code Playgroud)

我知道这是打算用的<button>,但想知道是否有相同的Enter关键.

Tre*_*vor 62

你想提交一份表格吗?

听取这个submit事件的意见.

这将处理clickenter.

如果必须使用回车键...

document.querySelector('#txtSearch').addEventListener('keypress', function (e) {
    var key = e.which || e.keyCode;
    if (key === 13) { // 13 is enter
      // code for enter
    }
});
Run Code Online (Sandbox Code Playgroud)

  • 作为提示,````document.addEventListener('keypress', function (e) {}```` . 直接使用而不使用````querySelector```` 以防您需要更多来自任何输入的响应,例如登录表格 。 (3认同)
  • 目前不赞成使用的一个重要细节* e.which *和* e.keyCode *是新的正确方法,即* e.key * **参考** //e.which https://developer.mozilla.org/zh-CN / docs / Web / API / KeyboardEvent /其中//e.keyCode https://developer.mozilla.org/zh-CN/docs/Web/API/KeyboardEvent/keyCode //e.key https://developer.mozilla .org / zh-CN / docs / Web / API / KeyboardEvent / key (3认同)

Ric*_*der 6

您可以收听该'keydown'事件,然后检查是否有回车键。

你的处理程序是这样的:

function (e) {
  if (13 == e.keyCode) {
     ... do whatever ...
  }
}
Run Code Online (Sandbox Code Playgroud)


Mar*_*cus 5

这是当前接受的答案的版本(来自@Trevor),其中包含key而不是keyCode:

document.querySelector('#txtSearch').addEventListener('keypress', function (e) {
    if (e.key === 'Enter') {
      // code for enter
    }
});
Run Code Online (Sandbox Code Playgroud)

  • 我的两个类似答案(不是完全复制/粘贴)是我试图传播有关 event.key 的信息。但是您的评论和否决让我阅读了更多关于标记和相关主题的信息,以减少我对 Stack Overflow 礼仪的无知,所以谢谢你。 (2认同)