3

我注意到,如果您专注于可以触发鼠标单击的元素,则 Enter 键的作用就像您左键单击鼠标一样。我想避免这种运行,因为它在我的其他代码中发生冲突。

在下面的示例中,如果我关注此 imageButton 并单击一次,则可以使用 Enter 键“完成”下一次单击,因此我不希望这样做,因为此按钮会触发 slideToggle() 并显示隐藏的 div,所以IMO 用键盘切换这个 div 是没有意义的。

在此处输入图像描述

有没有办法让它成为全球性的方式?谢谢你。

4

6 回答 6

3

试试这个:

$(".myElements").keypress(function(e) {
    if (e.which == 13) {
        e.preventDefault();
    }
});

它只会停止enter按键行为,允许其他按键功能照常工作。

于 2012-11-22T13:22:14.030 回答
1

"keypress".preventDefault()

前任。和<myelm class="nokey"/>

function noKeyPressing(){
    var elms = document.getElementsByClassName('nokey'),
        stop = function stop(e){ return e.preventDefault(), false; },
        i = elms.length;
    while(--i >= 0){
        elms[i].addEventListener('keypress', stop, true);
    }
}
noKeyPressing()

如果您只是想阻止,Enter那么要查找的 keyCode 是 13。

于 2012-11-22T13:24:03.597 回答
0

尝试

.unbind('keydown');

禁用元素上的所有关键事件

于 2012-11-22T13:20:03.557 回答
0

您可以返回 false 以阻止默认操作。

  <input type="submit" onkeypress="return false;" value="Submit" />
于 2012-11-22T13:23:58.880 回答
0

试试这个代码

    $('body *').keypress(function (e) {
    if (e.which == 13) {
        e.preventDefault();
    }
});

上面的代码将阻止对页面中的每个元素按 enter ,您可以$('body *')根据您的情况将选择器更改为其他内容

于 2012-11-22T13:24:18.013 回答
0

我认为另一种可能的方式:

$('.elems').on('click',function(){$(this).blur()});
于 2012-11-22T13:25:05.647 回答