这是简短的代码:
<!DOCTYPE html>
<script type="text/javascript">
function myKeyPress(e)
{
var keynum;
var list;
if(window.event)
{
keynum = e.keyCode;
list = keynum;
if(list == 115)
{
alert("You pressed the 'S' key.");
}
}
}
</script>
<form>
<input type="text" onkeypress="myKeyPress(event);"/>
</form>
当我按下某个键时,应调用myKeyPress并将该事件传递给该函数。在函数体中,e(事件参数)应获取Keynum并获取输入值。如果我按键盘上的'S',那个值应该是115。然后列表应具有Keynum的值,并检查列表以查看其值是否等于115(应该是)。如果是这样,它应该警告屏幕上的消息框中的相应文本。但它并没有这样做。为什么呢?
答案 0 :(得分:0)
以下是您的代码的缩写版本:
function myKeyPress(e) {
var keynum = e.which ? e.which : e.keyCode;
alert(keynum); // Just to see all key presses, remove when done :)
if (keynum == 115) {
alert("You pressed the 'S' key.");
}
}
我使用JavaScript绑定它而不使用HTML属性:
document.getElementById('example').onkeypress = myKeyPress;
所以我添加了一个ID:
<input type="text" id="example" />
我发现这很有效。我不确定您为什么在代码中测试window.event
?
答案 1 :(得分:-1)
的关键是nr 83 而不是115。
你可以用jQuery找到这样的结果。
<script type="text/javascript">
$('#myinput').on('keyup',function(e){
console.log(e.keyCode);
});
</script>
<input type="text" id="myinput" />