在不禁用按键的情况下防止 html ENTER 事件

Preventing html ENTER event without disabling keypress

我正在使用 <tr contenteditable="true"> 单元格构建电子表格网站。

我已经实现了一个 onkeyup 功能,当焦点在一个单元格上时按 enter 会将焦点转移到正下方的下一个单元格,但问题是默认情况下按 enter还添加了带有 contenteditable 元素的换行符,导致在移动到下一个单元格之前创建一个空行。

两者同时触发,所以我没有机会在不破坏我的功能的情况下取消按键。我发现的所有解决方案都涉及在关注元素时完全禁用回车键,但这在这里不起作用,因为我的功能依赖于在关注元素时能够按回车键。

我只需要 tr 在输入时不插入 <br> ,我不需要禁用我的输入密钥。

enter 事件上添加 e.preventDefault() 解决了这个问题。确保你只把它放在 enter 键上而不是所有按键上,否则你将禁用单元格的文本输入,阻止你编辑它们,并确保使用 onkeypress/onkeydown 而不是 onkeyup.

非常感谢评论中的@Robin Clower 和@Zac。