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

我做错了什么?

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

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


当前回答

尝试检测在文本框中按下的Enter键。

$(document).on("keypress", "input", function(e){
    if(e.which == 13){
        alert("Enter key pressed");
    }
});

DEMO

其他回答

尝试检测在文本框中按下的Enter键。

$(document).on("keypress", "input", function(e){
    if(e.which == 13){
        alert("Enter key pressed");
    }
});

DEMO

尝试检测在文本框中按下的Enter键。

$(function(){

$(".input1").keyup(function (e) {
    if (e.which == 13) {
        // Enter key pressed
    }
 });

});

事件。键=== "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文档

支持的浏览器

$(document).keyup(function (e) {
    if ($(".input1:focus") && (e.keyCode === 13)) {
       alert('ya!')
    }
 });

或者只是绑定到输入本身

$('.input1').keyup(function (e) {
    if (e.keyCode === 13) {
       alert('ya!')
    }
  });

要找出您需要的keyCode,请使用网站http://keycode.info

这段代码为我处理了整个站点中的每个输入。它检查INPUT字段中的ENTER键,不会在TEXTAREA或其他地方停止。

$(document).on("keydown", "input", function(e){
 if(e.which == 13){
  event.preventDefault();
  return false;
 }
});