我想检测用户是否使用jQuery按下了Enter键。
这怎么可能?它需要插件吗?
看起来我需要使用keypress()方法。
该命令是否存在浏览器问题?比如,是否存在我应该知道的浏览器兼容性问题?
我想检测用户是否使用jQuery按下了Enter键。
这怎么可能?它需要插件吗?
看起来我需要使用keypress()方法。
该命令是否存在浏览器问题?比如,是否存在我应该知道的浏览器兼容性问题?
当前回答
我无法使Paolo Bergan蒂诺发布的代码正常工作,但当我将其更改为$(document)和e.which而不是e.keyCode时,我发现它工作得很完美。
$(document).keypress(function(e) {
if(e.which == 13) {
alert('You pressed Enter!');
}
});
链接到JS Bin上的示例
其他回答
在某些情况下,您可能需要对页面的某个区域不按ENTER键,而对页面的其他区域不按ENTER键,例如下面包含带有SEARCH字段的页眉<div>的页面。
我花了一点时间才弄清楚如何做到这一点,我在这里为社区发布了这个简单但完整的示例。
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Test Script</title>
<script src="/lib/js/jquery-1.7.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
$('.container .content input').keypress(function (event) {
if (event.keyCode == 10 || event.keyCode == 13) {
alert('Form Submission needs to occur using the Submit button.');
event.preventDefault();
}
});
</script>
</head>
<body>
<div class="container">
<div class="header">
<div class="FileSearch">
<!-- Other HTML here -->
</div>
</div>
<div class="content">
<form id="testInput" action="#" method="post">
<input type="text" name="text1" />
<input type="text" name="text2" />
<input type="text" name="text3" />
<input type="submit" name="Submit" value="Submit" />
</form>
</div>
</div>
</body>
</html>
链接到JSFiddle Playground:[Submit(提交)]按钮不会执行任何操作,但从其中一个文本框控件中按ENTER键将不会提交表单。
$(function(){
$('.modal-content').keypress(function(e){
debugger
var id = this.children[2].children[0].id;
if(e.which == 13) {
e.preventDefault();
$("#"+id).click();
}
})
});
使用event.key和现代JavaScript!
$(document).keypress(function(event) {
if (event.key === "Enter") {
// Do something
}
});
或不使用jQuery:
document.addEventListener("keypress", function onEvent(event) {
if (event.key === "Enter") {
// Do something better
}
});
Mozilla文档
支持的浏览器
这就是我解决问题的方法。你应该使用return false;
$(document).on('按键',函数(e){如果(e.whit==13){$('#sub_btn').触发器('click');alert('您在某处按下了“Enter”键');return false;}});<script src=“https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js“></script><form action=“”method=“post”id=“sub_email_form”><div class=“modal header”><button type=“button”class=“close”id=“close”数据消除=“mode”>×</按钮><h4 class=“modal title”>订阅我们的技术分析</h4></div><div class=“modal body”><p>注册我们的定期技术分析更新,以查看直接在收件箱中提供的建议</p><div class=“input group”><input type=“email”name=“sub_email”id=“sub_email”class=“form control”placeholder=“Enter your email”required></div><span id=“save error”></span></div><div class=“modal footer”><div class=“input group append”><input type=“submit”class=“btn btn primary sub_btn”id=“sub_btn”name=“sub_btn”value=“Subscribe”></div></div></form>
我想出了这个解决方案:
$(document).ready(function(){
$('#loginforms').keypress(function(e) {
if (e.which == 13) {
//e.preventDefault();
alert('login pressed');
}
});
$('#signupforms').keypress(function(e) {
if (e.which == 13) {
//e.preventDefault();
alert('register');
}
});
});