【发布时间】:2020-12-28 11:12:46
【问题描述】:
我因此使用the instructions here 将` 变成了快捷方式:
function reset_shortcut_key(e) {
if (e.keyCode == 192) reset_data();
}
document.addEventListener('keyup', reset_shortcut_key, false);
它成功加载了下一个问题,但是当我在关注<form> <input> </form> 环境时按下此热键时,` 字符会暂时出现(在加载下一个问题之前)。
我想阻止它显示`字符。
问题:如何防止热键`被添加到表单输入中?
其他相关问题是How can I prevent \ from being added from the form input?(但这是关于剥离斜杠)和Javascript -> Hotkeys -> Disable for input fields(和here)(但我希望热键起作用)。
编辑:从目前的评论和回答来看,合适的函数是event.preventDefault()。我仍然不清楚如何实际实现这一点。
在document.addEventListener('keyup', reset_shortcut_key, false); 之前或之后添加它不会做任何事情。除此之外,
document.addEventListener("keyup", function(event) {
event.preventDefault();
reset_shortcut_key();
}, false);
和
document.querySelector("#input-guess").addEventListener("keyup", function(event) {
event.preventDefault();
reset_shortcut_key();
}, false);
(其中id="input-guess" 是我的<input> 的名称)都阻止reset_shortcut_key() 被调用。如下修改reset_shortcut_key 不会改变任何东西:
function reset_shortcut_key(e) {
e.preventDefault();
if(e.keyCode == 192) reset_data();
}
此时,我只是在猜测该怎么做。
【问题讨论】:
-
防止默认
标签: javascript html forms hotkeys