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

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

試す

.unbind('keydown');

要素のすべての主要なイベントを無効にするには

于 2012-11-22T13:20:03.557 に答える
0

私が考える他の可能な方法:

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