作为现代化/优化计划的一部分,我正在尝试将jQuery从现有代码库中剥离出来。当在文本输入中用户按下enter
键时,在某些地方需要发生一些事情。以前,我们是通过以下方式完成此任务的:
$("#loginInput").on("keypress", e => {
if (e.which == 13) {
// if key pressed was enter...
login();
}
});
但是,通过阅读键盘事件API here,我发现不推荐使用大多数常用的API,例如KeyboardEvent.which
和KeyboardEvent.keyCode
。
尽管这些属性在大多数浏览器中仍然可用,但使用不推荐使用的API会让我感到不舒服。我应该怎么用呢?
答案 0 :(得分:4)
我认为您想要event.key
。它似乎得到了广泛的支持。
“键”属性给出了用户与键盘的交互所反映的字符,同时考虑了所涉及的所有元键(Shift,Ctrl等)。
要检查回车符(13),请使用
if (event.key === "Enter") {
// enter key was pressed
}
edit 已更新,以反映出一个令人惊讶的事实,即当该键触发事件时,“ key”属性设置为字符串“ Enter”。