我有一些可以通过鼠标或按键点击的按钮。然后我有一个由空格键调用的函数。
问题是当用鼠标点击其中一个按钮时,似乎按钮被选中(聚焦),当空格键(和输入键)被按下后,浏览器调用所选的(聚焦的) )按钮而不是空格键的预期功能。
我很久以前就找到了一个解决方案,所以我知道有一个解决方案但不记得了。
编辑:这不在表单中。
答案 0 :(得分:3)
如果您不需要表单的空格键,则可以在空格键的keypress上执行event.preventDefaut()。
$(yourbuttonelements).keydown(function(e) {
var kc = e.keyCode;
if (kc === 32){
e.preventDefault();
}
});
答案 1 :(得分:0)
如果您希望绕过default
上的keypress
活动,则需要首先委派一个' keypress
'或相关的event
然后检查event.which
以找到相应的密钥pressed
,如果它与您要阻止的密钥匹配,您可以return false;
或event.preventDefault();
1}}
示例:
$('button').on('keypress',function(e)
{
if(e.which == 32) // 32 -> represents the keycode of space bar
e.preventDefault();
});
答案 2 :(得分:0)
preventDefault()没有工作。 如上所述,问题是点击时按钮被聚焦,所以我使用了按钮的blur()。
document.getElementById(id).blur();