2010-03-03 27 views
14

如果用「click」替換「onkeydown」,它至少會起作用。Javascript:帶onkeydown的addEventListener似乎不起作用

<input id="yourinput" type="text" /> 

<script type="text/javascript"> 
document.getElementById("yourinput").addEventListener("onkeydown", keyDownTextField, false); 

function keyDownTextField() { 
alert("functional");  
if(keycode==13) { 
     alert("You hit the enter key."); 
    } 
    else{ 
     alert("Oh no you didn't."); 
    } 
} 
</script> 

回答

37

事件類型應該是"keydown",請注意,您不需要前綴:

element.addEventListener("keydown", keyDownTextField, false); 

還要注意的是,你應該在你的處理器的事件對象獲得keyCode

function keyDownTextField (e) { 
    var keyCode = e.keyCode; 
    //... 
} 

查看示例here