Tab键按压事件不起作用(本机JavaScript)

时间:2015-06-25 10:16:46

标签: javascript events keypress

所以我最近一直在学习JavaScript,我似乎无法弄清楚为什么以下代码不起作用。我在“输入”上使用了按键事件(按键代码13,以防任何人好奇)并且它工作得很好。但是我无法使用按键代码9(标签)来工作。

函数listItemTab本身似乎有效,但它永远不会进入我的if语句(我的console.log永远不会执行)。

这里是the codepen I've been working,所以你可以看到我的html上下文中的所有代码。

var myList = document.getElementById("my-list");
var listItems = myList.querySelectorAll("li");
var inputs = myList.querySelectorAll("input");

for(var i = 0; i < listItems.length; i++){
    inputs[i].addEventListener("keypress", listItemTab);
}

function listItemTab(event){
    if(event.which === 9){
        console.log("tab pressed");
    }
}

提前感谢您的帮助! :)

1 个答案:

答案 0 :(得分:0)

尝试使用keydown事件而不是keypress事件。 Keydown首先开火。如果您想留在输入内,也可以阻止默认操作。 (如果你不想留在输入中,只需删除该行)

inputs[i].addEventListener("keydown", listItemTab);

// not working yet
function listItemTab(event){    
    event.preventDefault();
    if(event.which === 9){
        console.log("tab pressed");     
    }
}