检测文本输入字段中的Enter键

我试着做一个函数,如果在特定输入时按下enter键。

我做错了什么?

$(document).keyup(function (e) {
if ($(".input1").is(":focus") && (e.keyCode == 13)) {
// Do something
}
});

有没有更好的方法,如果回车按.input1 do function?

531640 次浏览
$(".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.

尝试检测在文本框中按下的Enter键。

$(function(){


$(".input1").keyup(function (e) {
if (e.which == 13) {
// Enter key pressed
}
});


});
$(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

现在回答这个问题可能已经太晚了。但是下面的代码只是阻止输入键。复制粘贴就可以了。

        <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>
 $(document).ready(function () {
$(".input1").keyup(function (e) {
if (e.keyCode == 13) {
// Do something
}
});
});

我发现最好的方法是使用keydown (keyup不适合我)。

注意:我还禁用了表单提交,因为通常当你喜欢按Enter键时做一些动作时,你唯一不喜欢的是提交表单:)

$('input').keydown( function( event ) {
if ( event.which === 13 ) {
// Do something
// Disable sending the related form
event.preventDefault();
return false;
}
});

事件。键=== "回车;

最近更干净的方法:使用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
}
});

Mozilla Docs

支持的浏览器

尝试检测在文本框中按下的Enter键。

$(document).on("keypress", "input", function(e){
if(e.which == 13){
alert("Enter key pressed");
}
});

DEMO

下面是对我有效的解决方案

$("#element").addEventListener("keyup", function(event) {
if (event.key === "Enter") {
// do something
}
});

这段代码为我处理了整个站点中的每个输入。它检查INPUT字段中的ENTER键,不会在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);
}
}

一个对我有效的解决方法是:

<input onkeydown="if (event.key == 'Enter'){//do logic}else{}">