如何仅阻止页面上按键的特定默认操作?

时间:2015-09-22 00:04:53

标签: javascript events input keyboard

我想只阻止网页上按键操作的某些操作。特别是退格。通常情况下,我会做这样的事情:

function keyPress(ev) {
    if(ev.keyCode === 8) {  
        ev.preventDefault();
    }
    // do cool stuff here
}

$(document).keydown(keyPress);

该代码阻止退格所做的所有默认操作。我想阻止它导航到最后一页,但我想允许它删除文本字段中的字符。如何防止仅导航而不防止文本操作?

1 个答案:

答案 0 :(得分:1)

对于您提到的特定情况,您可以检查用户是否有重点文本字段,如果是,则不会阻止默认。

function keyPress(ev) {
   var targetElTag = document.activeElement.tagName;
   if (ev.keyCode === 8 && targetElTag !== 'TEXTAREA') {
      ev.preventDefault();
   }
}

您还希望包含您想要退格的任何其他可聚焦元素。