jQuery keydown但在文本框中忽略

dha*_*rdy 7 javascript jquery

我正在调用一个函数(下面),如果用户按下删除按钮,它将执行一个动作.它工作正常,但我只需要在页面上进行,而不是在用户输入时(在输入内或在textarea内).

$(window).keydown(function (evt) {
    if (evt.which == 46) { // delete
        goDoSomething();
    }
});
Run Code Online (Sandbox Code Playgroud)

任何想法how I can amend the abovenot fire,如果用户是in一个input还是textarea

提前致谢,

戴夫

kar*_*una 14

检查evt.target的类型:

$(window).keydown(function (evt) {
    if (evt.target.tagName.toLowerCase() !== 'input' &&
        evt.target.tagName.toLowerCase() !== 'textarea' && evt.which == 46) { // delete
        goDoSomething();
    }
});
Run Code Online (Sandbox Code Playgroud)