为什么不能在console.log中显示keyCode?

时间:2018-10-01 09:07:47

标签: javascript javascript-events addeventlistener

当您在输入标签中键入一些字符时,我想显示所有keyCode。 ob是输入,将函数checkWord与事件onkeydown绑定,为什么console.log无法显示其键码值?

ob = window.document.getElementById("check");
function checkWord(){
    console.log(onkeydown.keyCode);
}
ob.addEventListener("onkeydown",checkWord);  
 
<input id="check" type="text">
 

我希望console.log在输入标签中键入65时显示a

2 个答案:

答案 0 :(得分:1)

嗯,你可以那样做:

// Getting Element
const textInput = document.getElementById("textInput");
// Adding event listener
textInput.addEventListener("keyup", event => {
  console.log(event.keyCode);
});
<input type="text" id="textInput">

在您的代码中,它看起来像这样:

const ob = document.getElementById("check");
ob.addEventListener("keydown",checkWord);  
function checkWord(event){
  console.log(event.keyCode);
}
<input type="text" id="check">

这主要不起作用,因为您使用了错误的事件名称(onkeydown-> keydown),并且没有将事件传递给函数。

顺便说一句:onkeydown存在但被这样使用:

object.onkeydown = function;

onkeydownaddEventLisener之间的区别在于onkeydown被定义一次,并且可以使用事件监听器随意添加到同一事件。

// Adds listener
object.onkeydown = function0;
// Overwrites the old listener
object.onkeydown = function1;

// Add listener
object.addEventLisener("keydown", function0);
// Add another listener to the stack
object.addEventLisener("keydown", function1);

答案 1 :(得分:1)

您有两个问题

  • 该事件名为keydown
  • keyCodeevent的属性,该属性已传递给您的处理程序

ob = window.document.getElementById("check");
function checkWord(e){
    console.log(e.keyCode);
}
ob.addEventListener("keydown",checkWord);  
<input id="check" />