如何在JavaScript中触发Enter键?event.code===13失效且VSCode提示已废弃
解决待办事项列表Enter键无响应问题
先纠正你尝试中的错误写法:
event.code === 13错误,code属性是字符串类型,正确值是'Enter'KeyboardEvent = "Enter"属于语法错误,完全不符合事件判断逻辑
以下是两种标准且有效的实现方式,无需使用已废弃的 keyCode:
方式一:使用 event.key
直接判断按键的标识字符串,写法直观:
// 假设你的输入框DOM元素是todo-input const inputTodo = document.getElementById('todo-input'); inputTodo.addEventListener('keydown', function(event) { // 按下Enter键时执行添加逻辑 if (event.key === 'Enter') { // 调用和按钮点击相同的添加待办函数 addTodoItem(); } });
方式二:使用 event.code
判断按键的物理位置编码,适合需要区分同键不同位置的场景(比如主键盘Enter和小键盘Enter):
inputTodo.addEventListener('keydown', function(event) { // 主键盘Enter的code是'Enter',小键盘Enter是'NumpadEnter',按需选择 if (event.code === 'Enter') { addTodoItem(); } });
额外注意事项
- 事件绑定对象正确:务必给输入框绑定键盘事件,而不是按钮或其他元素,因为Enter键是在输入框中触发的
- 表单场景需阻止默认行为:如果输入框包裹在
<form>标签内,按下Enter会触发表单提交导致页面刷新,需要添加阻止默认行为的代码:
inputTodo.addEventListener('keydown', function(event) { if (event.key === 'Enter') { event.preventDefault(); // 阻止表单默认提交 addTodoItem(); } });
- 复用逻辑:确保
addTodoItem()函数和你点击按钮时调用的是同一个,保证添加逻辑一致
内容的提问来源于stack exchange,提问作者Mustafa Shf
相关产品推荐
相关产品推荐

