如果在特定输入时按下输入,我正在尝试执行一个功能。
我做错了什么?
$(document).keyup(function (e) {
if ($(".input1").is(":focus") && (e.keyCode == 13)) {
// Do something
}
});
是否有更好的方法来执行此操作,如果在 .input1
上按下输入,则执行功能?
$(".input1").on('keyup', function (e) {
if (e.key === 'Enter' || e.keyCode === 13) {
// Do something
}
});
// e.key is the modern way of detecting keys
// e.keyCode is deprecated (left here for for legacy browsers support)
// keyup is not compatible with Jquery select(), Keydown is.
event.key === "输入"
更新且更简洁:使用 event.key
。 没有更多的任意数字代码!
注意:旧属性(.keyCode 和 .which)已弃用。
const node = document.getElementsByClassName("input1")[0];
node.addEventListener("keyup", function(event) {
if (event.key === "Enter") {
// Do work
}
});
现代风格,带有 lambda 和解构
node.addEventListener("keyup", ({key}) => {
if (key === "Enter") {
// Do work
}
})
如果你必须使用 jQuery:
$(document).keyup(function(event) {
if ($(".input1").is(":focus") && event.key == "Enter") {
// Do work
}
});
$(document).keyup(function (e) {
if ($(".input1:focus") && (e.keyCode === 13)) {
alert('ya!')
}
});
或者只是绑定到输入本身
$('.input1').keyup(function (e) {
if (e.keyCode === 13) {
alert('ya!')
}
});
要确定您需要哪个 keyCode,请使用网站 http://keycode.info
试试这个来检测在文本框中按下的 Enter
键。
$(function(){
$(".input1").keyup(function (e) {
if (e.which == 13) {
// Enter key pressed
}
});
});
我发现最好的方法是使用 keydown
(keyup
对我来说效果不佳)。
注意:我还禁用了表单提交,因为通常当您喜欢在按 Enter 键时执行某些操作时,您唯一不喜欢的就是提交表单 :)
$('input').keydown( function( event ) {
if ( event.which === 13 ) {
// Do something
// Disable sending the related form
event.preventDefault();
return false;
}
});
回答这个问题可能为时已晚。但是下面的代码只是阻止了回车键。只需复制和粘贴即可。
<script type="text/javascript">
function stopRKey(evt) {
var evt = (evt) ? evt : ((event) ? event : null);
var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
if ((evt.keyCode == 13) && (node.type=="text")) {return false;}
}
document.onkeypress = stopRKey;
</script>
对我有用的解决方案如下
$("#element").addEventListener("keyup", function(event) {
if (event.key === "Enter") {
// do something
}
});
试试这个来检测在文本框中按下的 Enter 键。
$(document).on("keypress", "input", function(e){
if(e.which == 13){
alert("Enter key pressed");
}
});
$(document).ready(function () {
$(".input1").keyup(function (e) {
if (e.keyCode == 13) {
// Do something
}
});
});
这段代码为我处理了整个站点中的每个输入。它检查输入字段内的 ENTER KEY,并且不会在 TEXTAREA 或其他地方停止。
$(document).on("keydown", "input", function(e){
if(e.which == 13){
event.preventDefault();
return false;
}
});
这是我为我的 Angular 项目所做的:
HTML:
<input
class="form-control"
[(ngModel)]="searchFirstName"
(keyup)="keyUpEnter($event)"
/>
打字稿:
keyUpEnter(event: KeyboardEvent) {
if (event.key == 'Enter') {
console.log(event);
}
}
event.keyCode
是一个Number
,因此 JavaScript 将采用与==
或===
相同的步骤。which
、code
、charCode
和keyCode
已弃用 developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent,请在您的答案中添加实际信息。