javascript - 防止按下回车键时多次调用按键方法

标签 javascript jquery html input

我正在使用 HTML 输入标签制作一个简单的搜索栏:

<input type="text" id="search_bar" />

然后在 jQuery 中我实现了 keypress 方法来检测用户何时按下回车键:

$('#search_bar').keypress(function(e) {
    if(e.keyCode == 13 && !e.shiftKey) { // enter/return
        e.preventDefault();
        //do stuff
    }
});

但是,如果用户决定按住回车键,则此方法将被调用多次。我想禁用此行为,即 keypress 仅在用户按下 enter 时调用一次,但在按下该键时不会再次调用。实现这一目标的最佳方法是什么?

谢谢。

最佳答案

使用 onkeyup() 将只检测键何时被释放。这应该可以解决您的 holding enter 问题。

$('#search_bar').keyup(function(e) {
    if(e.keyCode == 13 && !e.shiftKey) { // enter/return
        e.preventDefault();
        console.log("xx");
    }
});

按住回车 -- xx 仅在发布时登录。

fiddle :http://jsfiddle.net/veRkd/

关于javascript - 防止按下回车键时多次调用按键方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16155139/

相关文章:

javascript - 浏览器后退按钮

javascript - 找出更改页面中特定 html 内容的 javascript 代码的最佳方法是什么

javascript - 如何在另一个jquery文件中调用jquery方法

javascript - 无法在ajax响应中获取数据id以解析为模态

c# - 将文件和模型发布到 ASP.NET Core MVC6 中的 Controller

html - 是否可以通过 JavaScript 获取网页的矩形部分作为图像?

javascript - ng-repeat angular js 的问题

javascript - 不改变地址栏就跳转到内部链接?

javascript - Jquery 日期选择器选择突出显示的月份

html - 响应式网站的像素宽度内的CSS全屏宽度div