我正在使用 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/