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.target您可以使用and来检查元素的类型is()

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

请注意,选择:input器将匹配inputselect和。textareabutton

于 2016-11-22T17:45:24.763 回答