我试着做一个函数,如果在特定输入时按下enter键。

我做错了什么?

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

有没有更好的方法,如果回车按。input1 do function?


当前回答

事件。键=== "Enter"

使用event.key。不再有任意的数字代码!

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

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

现代风格,有lambda和解构

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

如果你必须使用jQuery:

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

Mozilla文档

支持的浏览器

其他回答

事件。键=== "Enter"

使用event.key。不再有任意的数字代码!

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

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

现代风格,有lambda和解构

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

如果你必须使用jQuery:

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

Mozilla文档

支持的浏览器

现在回答这个问题可能已经太晚了。但是下面的代码只是阻止输入键。复制粘贴就可以了。

        <script type="text/javascript"> 
        function stopRKey(evt) { 
          var evt = (evt) ? evt : ((event) ? event : null); 
          var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null); 
          if ((evt.keyCode == 13) && (node.type=="text"))  {return false;} 
        } 

        document.onkeypress = stopRKey; 

        </script>

一个对我有效的解决方法是:

<input onkeydown="if (event.key == 'Enter'){//do logic}else{}">
$(".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.

下面是我为我的angular项目所做的:

HTML:

<input
    class="form-control"
    [(ngModel)]="searchFirstName"
    (keyup)="keyUpEnter($event)"
/>

打字稿:

keyUpEnter(event: KeyboardEvent) {
    if (event.key == 'Enter') {
        console.log(event);
    }
}