1

jQuery 1.11 を使用しています。ユーザーがキーボードの「d」キーを押した場合にアクションを実行したい。だから私はこれを持っています

$(document).keypress(function(e) {
    if(e.which == 68 || e.which == 100) {
        submitDownloadUsersReq();
    }
});

ただし、テキスト ボックス内で「d」キーを押すと、上記のアクションがトリガーされることは望ましくありません。ユーザーがフォームフィールドをいじっている場合にアクションをトリガーしないように、上記を変更するにはどうすればよいですか?

4

2 に答える 2

1

ユーザーがd入力要素から押しているときにイベントをキャンセルできます。

$(document).keypress(function(e) {
    if(!$(e.target).is("input")) {
      if(e.which == 68 || e.which == 100) {
        submitDownloadUsersReq();
      }
    }
});
于 2016-11-22T17:45:13.043 に答える
1

e.targetandを使用して要素のタイプを確認できますis()

$(document).keypress(function(e) {
    if (!$(e.target).is(':input') && (e.which == 68 || e.which == 100)) {
        submitDownloadUsersReq();
    }
});

:inputセレクターはinputselecttextareaおよびに一致することに注意してくださいbutton

于 2016-11-22T17:45:24.763 に答える