我有一个输入,我只是想添加一个事件侦听器,以便在我将输入焦点对准后按Enter来激活一个功能。如何使用纯JS执行此操作?
现在我有:
HTML:
Enter your wage:<input type="text" id="wage" value ="" size=20>
<button id="sub">Submit</button>
JavaScript:
var wage = document.getElementById("wage");
wage.addEventListener("change", validate);
var btn = document.getElementById("sub");
btn.addEventListener("click", validate);
因此,基本上,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...
}
+1。虽然你可以代替
alert()
用validate()
。所有支持的浏览器
addEventListener
(IE9 +,请在此处查看developer.mozilla.org/en-US/docs/DOM/…)使用命名函数而不是匿名函数,因为将无法删除此侦听器。
目前不建议使用e.keyCode的一个重要细节,新的正确方法是e.key 参考 //e.keyCode developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode //e.key 开发人员。 mozilla.org/zh-CN/docs/Web/API/KeyboardEvent/key
为什么
e
要用?如果没有它,我们可以执行代码吗?