Javascript 检测文本输入字段中的 Enter 键

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/7060750/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-24 00:40:00  来源:igfitidea点击:

Detect the Enter key in a text input field

javascriptjquery

提问by jQuerybeast

I'm trying to do a function if enter is pressed while on specific input.

如果在特定输入时按下回车,我正在尝试执行一个功能。

What I'm I doing wrong?

我做错了什么?

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

Is there a better way of doing this which would say, if enter pressed on .input1do function?

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

回答by Joseph Silber

$(".input1").on('keyup', function (e) {
    if (e.keyCode === 13) {
        // Do something
    }
});


//keyup not compatible with Jquery select(), Keydown is.

回答by Gibolt

event.key === "Enter"

event.key === "回车"

More recent and much cleaner: use event.key. No more arbitrary number codes!

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

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

If you must use jQuery:

如果您必须使用 jQuery:

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

Mozilla Docs

Mozilla 文档

Supported Browsers

支持的浏览器

回答by wesbos

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

Or just bind to the input itself

或者只是绑定到输入本身

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

To figure out which keyCode you need, use the website http://keycode.info

要确定您需要哪个 keyCode,请使用网站http://keycode.info

回答by ShankarSangoli

Try this to detect the Enterkey pressed in a textbox.

试试这个来检测Enter在文本框中按下的键。

$(function(){

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

});

回答by Indra Kumar S

It may be too late to answer this question. But the following code simply prevents the enter key. Just copy and paste should work.

回答这个问题可能为时已晚。但是下面的代码只是阻止了回车键。只需复制和粘贴就可以了。

        <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>

回答by Roy Shoa

The best way I found is using keydown( the keyupdoesn't work well for me).

我发现的最好方法是使用keydownkeyup对我来说效果不佳)。

Note: I also disabled the form submit because usually when you like to do some actions when pressing Enter Key the only think you do not like is to submit the form :)

注意:我还禁用了表单提交,因为通常当您喜欢按 Enter 键执行某些操作时,您唯一不喜欢的就是提交表单 :)

$('input').keydown( function( event ) {
    if ( event.which === 13 ) {
        // Do something
        // Disable sending the related form
        event.preventDefault();
        return false;
    }
});

回答by Jorge Santos Neill

The solution that work for me is the following

对我有用的解决方案如下

$("#element").addEventListener("keyup", function(event) {
    if (event.key === "Enter") {
        // do something
    }
});

回答by jonathan klevin

Try this to detect the Enter key pressed in a textbox.

试试这个来检测在文本框中按下的 Enter 键。

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

DEMO

演示

回答by Jobelle

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

回答by Umar Niazi

This code handled every input for me in the whole site. It checks for the ENTER KEY inside an INPUT field and doesn't stop on TEXTAREA or other places.

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

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