keypress
事件没有被任何官方规范所覆盖,因此,在使用时遇到的实际行为可能会因浏览器、浏览器版本和平台而异。
$(document).keydown(function(event) {
if (event.keyCode || event.which === 13) {
// Cancel the default action, if needed
event.preventDefault();
// Call function, trigger events and everything you want to do. Example: Trigger the button element with a click
$("#btn").trigger('click');
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<button id="btn" onclick="console.log('Button Pressed.')"> </button>
keypress
不再在规范中(MDN)之所以被弃用的原因。 - YellowAfterlife尝试使用以下方法检测按下Enter键:
$(document).on("keypress", function(e){
if(e.which == 13){
alert("You've pressed the enter key!");
}
});
查看演示 @ 如何使用jQuery检测键盘上的回车键按下
我使用了$(document).on("keydown")
。
在某些浏览器上,不支持keyCode
。同样的情况还有which
,所以如果不支持keyCode
,则需要使用which
反之亦然。
$(document).on("keydown", function(e) {
const ENTER_KEY_CODE = 13;
const ENTER_KEY = "Enter";
var code = e.keyCode || e.which
var key = e.key
if (code == ENTER_KEY_CODE || key == ENTER_KEY) {
console.log("Enter key pressed")
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
$(document).keydown(function (event) {
//proper indentiation of keycode and which to be equal to 13.
if ( (event.keyCode || event.which) === 13) {
// Cancel the default action, if needed
event.preventDefault();
//call function, trigger events and everything tou want to dd . ex : Trigger the button element with a click
$("#btnsearch").trigger('click');
}
});
我认为最简单的方法是使用纯JavaScript:
document.onkeyup = function(event) {
if (event.key === 13){
alert("Enter was pressed");
}
}
检测用户是否按下 Enter 键的简单方法是使用键号。 Enter 键的键号等于13。
要检查设备中键的值:
$("input").keypress(function (e) {
if (e.which == 32 || (65 <= e.which && e.which <= 65 + 25)
|| (97 <= e.which && e.which <= 97 + 25)) {
var c = String.fromCharCode(e.which);
$("p").append($("<span/>"))
.children(":last")
.append(document.createTextNode(c));
} else if (e.which == 8) {
// Backspace in Internet Explorer only is on keydown
$("p").children(":last").remove();
}
$("div").text(e.which);
});
按下 Enter 键,你将得到结果为13。使用该键值,你可以调用一个函数或者做任何你想做的事情:
$(document).keypress(function(e) {
if(e.which == 13) {
console.log("The user pressed the Enter key");
// The code you want to run
}
});
$(document).bind('keypress', function(e) {
if(e.which === 13) { // Return
$('#buttonname').trigger('click');
}
});
这是我解决问题的方式。你应该使用 return false;
$(document).on('keypress', function(e) {
if(e.which == 13) {
$('#sub_btn').trigger('click');
alert('You pressed the "Enter" key somewhere');
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" data-dismiss="modal">×</button>
<h4 class="modal-title">Subscribe to our Technical Analysis</h4>
</div>
<div class="modal-body">
<p>Signup for our regular Technical Analysis updates to review recommendations delivered directly in your inbox.</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>
$("body").keypress(function(event) {
console.log("This key got pressed - " + event.key);
});
$(document).keyup(function(e) {
if(e.key === 'Enter') {
//Do the stuff
}
});
$(function(){
$('.modal-content').keypress(function(e){
debugger
var id = this.children[2].children[0].id;
if(e.which == 13) {
e.preventDefault();
$("#"+id).click();
}
})
});