避免使用空格调用按钮/输入

时间:2016-02-22 22:53:02

标签: javascript jquery html

我有一些可以通过鼠标或按键点击的按钮。然后我有一个由空格键调用的函数。

问题是当用鼠标点击其中一个按钮时,似乎按钮被选中(聚焦),当空格键(和输入键)被按下后,浏览器调用所选的(聚焦的) )按钮而不是空格键的预期功能。

我很久以前就找到了一个解决方案,所以我知道有一个解决方案但不记得了。

编辑:这不在表单中。

3 个答案:

答案 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();