Javascript 在<;中按enter键时如何执行功能;输入>;领域

Javascript 在<;中按enter键时如何执行功能;输入>;领域,javascript,events,input,listener,Javascript,Events,Input,Listener,我有一个输入,我只想为它添加一个事件侦听器,以便在我按下enter键时激活一个函数,当输入被聚焦时。如何使用纯JS实现这一点 现在我有: HTML: 输入您的工资: 提交 JavaScript: function myFunction(event) { var x = event.code; if(x == "Enter") { validate(); } } var wage=document.getElementById

我有一个输入,我只想为它添加一个事件侦听器,以便在我按下enter键时激活一个函数,当输入被聚焦时。如何使用纯JS实现这一点

现在我有:

HTML:

输入您的工资:
提交
JavaScript:

function myFunction(event) {
    var x = event.code;
    if(x == "Enter") {
        validate();
    }    
}
var wage=document.getElementById(“工资”);
工资。添加工资列表(“变更”,验证);
var btn=document.getElementById(“子”);
btn.addEventListener(“单击”,验证);
因此,基本上,当我单击或更改文本时,
validate()
函数会激活,但我想通过按enter键调用它。

您可以使用以下方法:

var wage = document.getElementById("wage");
wage.addEventListener("keydown", function (e) {
    if (e.code === "Enter") {  //checks whether the pressed key is "Enter"
        validate(e);
    }
});

function validate(e) {
    var text = e.target.value;
    //validation of the input...
}

您需要类似
wage.addEventListener('keydown',validate)


然后,验证函数需要检查
event.keyCode==13
,以确定“回车”按键。

如果将按钮元素更改为

<input type="submit" value="Submit">

它将与键盘上的“回车”按钮一起工作

var elem = document.getElementById("wage");
elem.onkeyup = function(e){
    if(e.keyCode == 13){
       validate();
    }
}
工作示例

或使用jQuery

$("#wage").on("keydown", function (e) {
    if (e.keyCode === 13) {  //checks whether the pressed key is "Enter"
        validate(e);
    }
});

以下是当前接受的答案(来自@MinkoGechev)的一个版本,而不是keyCode:

const wage = document.getElementById('wage');
wage.addEventListener('keydown', (e) => {
    if (e.key === 'Enter') {
        validate(e);
    }
});

function validate(e) {
    const text = e.target.value;
    //validation of the input...
}
HTML:
输入您的工资:

<input type="text" id="wage" value ="" onkeypress="myFunction(event)" size=20>

这很简单。您可以使用keyup事件执行此操作

$(document).on(“keyup”,“工资”,函数(e){
如果(e.which==13){
警报(“Hi”)
}
})

+1。虽然您可以将
警报()
替换为
验证()
。所有支持
addEventListener
(IE9+,请在此处签出)的浏览器都使用命名函数而不是匿名函数,因为无法删除此侦听器。一个重要的细节e.keyCode目前已被弃用,新的正确方法是e.key引用//e.keyCode//e.key为什么要使用
e
?我们可以在没有它的情况下执行代码吗?虽然这个代码片段可以解决这个问题,但它确实有助于提高文章的质量。请记住,您将在将来回答读者的问题,这些人可能不知道您的代码建议的原因。在此代码中,当用户输入输入文本并单击enter时,它将自动生成结果。因此,请通过编辑将解释合并到回答中。解释代码更有可能对其他人有用。;)这是我第一次上传代码,所以我很抱歉!大家好,欢迎来到SO!虽然这段代码可以回答这个问题,但提供关于它如何和/或为什么解决问题的附加上下文将提高答案的长期价值。请阅读,然后
<input type="text" id="wage" value ="" onkeypress="myFunction(event)" size=20>
function myFunction(event) {
    var x = event.code;
    if(x == "Enter") {
        validate();
    }    
}