防止Enter键用作鼠标单击

时间:2012-11-22 13:18:10

标签: javascript jquery html

我注意到如果您专注于可以触发鼠标clic的元素,则Enter键的作用就像左键单击鼠标一样。我希望避免这种情况,因为它会在我的其他代码中出现冲突。

在下面的例子中,如果我专注于这个imageButton和我clic一次,下一次点击可以用Enter键“完成”,所以我不想要这个,因为这个按钮触发一个slideToggle()并显示一个隐藏div,所以IMO用键盘切换这个div是毫无意义的。

enter image description here

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

6 个答案:

答案 0 :(得分:3)

试试这个:

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

它将仅停止输入键行为,允许其他键功能照常工作。

答案 1 :(得分: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。

答案 2 :(得分:0)

.unbind('keydown');

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

答案 3 :(得分:0)

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

  <input type="submit" onkeypress="return false;" value="Submit" />

答案 4 :(得分:0)

试试这段代码

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

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

答案 5 :(得分:0)

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

$('.elems').on('click',function(){$(this).blur()});