检测文本输入字段中的 Enter 键事件.key === “输入”

2022-08-29 23:33:01

我正在尝试在特定输入时按下Enter键时执行一个函数。

我做错了什么?

$(document).keyup(function (e) {
    if ($(".input1").is(":focus") && (e.keyCode == 13)) {
        // Do something
    }
});

有没有更好的方法来做到这一点,如果输入按上做功能?.input1


答案 1
$(".input1").on('keyup', function (e) {
    if (e.key === 'Enter' || e.keyCode === 13) {
        // Do something
    }
});

// e.key is the modern way of detecting keys
// e.keyCode is deprecated (left here for for legacy browsers support)
// keyup is not compatible with Jquery select(), Keydown is.

答案 2

事件.key === “输入”

最近和更干净:使用。没有更多的任意数字代码!event.key

注意:旧属性 ( 和 ) 已弃用。.keyCode.which

const node = document.getElementsByClassName("input1")[0];
node.addEventListener("keyup", function(event) {
    if (event.key === "Enter") {
        // Do work
    }
});

现代风格,带有λ和解构

node.addEventListener("keyup", ({key}) => {
    if (key === "Enter") {
        // Do work
    }
})

如果你必须使用jQuery:

$(document).keyup(function(event) {
    if ($(".input1").is(":focus") && event.key == "Enter") {
        // Do work
    }
});

Mozilla Docs

支持的浏览器