【问题标题】:How do I target the enter key event? [duplicate]如何定位回车键事件? [复制]
【发布时间】:2018-10-08 12:14:39
【问题描述】:

我有以下代码可用于除 enter、shift 等之外的所有键。

$(document).ready(function(){
$('input[name="tmp_post_tag"]').keypress(function(evt){
    alert("hello");
 });
});

为什么它在输入时不起作用?这就是我想要它做的。 我试过 evt.char、evt.keyCode evt.which 但没有任何效果。

【问题讨论】:

  • 检查evt.keyCode==13
  • 我试过 keyCode。这没用。现在,除了 enter 和 shift 之类的几个键之外,所有键都提醒我你好。
  • 我不确定到底发生了什么,但从阅读api.jquery.com/keypress 的文档看来,.keypress 充其量是喜怒无常的,你最好使用keyup和/或keydown 事件。
  • 什么浏览器?该代码似乎在 Chrome 中工作(包括 Enter 和 Shift)
  • 对于keypress,您应该使用evt.which == 13。对于keyupkeydown 使用evt.keyCode == 13

标签: javascript jquery events keypress keycode


【解决方案1】:

您需要使用KeyDown() 事件,它会触发所有特殊键,包括 enteraltshift 等...

检查此代码:

$(document).ready(function(){
$('input[name="tmp_post_tag"]').keydown(function(evt){
    console.log('Key pressed : ' + evt.keyCode)
 });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<input type="input" name="tmp_post_tag" placeholder="press key here" />

【讨论】:

【解决方案2】:

试试这个代码。 13 代表回车键。

$(document).ready(function(){
  $('input[name="tmp_post_tag"]').keypress(function(evt){
    if(evt.which == 13) {
        alert("hello");
    }
  });
});

【讨论】:

    猜你喜欢
    • 2021-05-21
    • 2022-12-06
    • 2014-03-19
    • 2013-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-12
    • 1970-01-01
    相关资源
    最近更新 更多