onkeydown是js中的一個事件,它在用戶按下一個鍵時會被觸發。可以用它處理用戶輸入事件,做出對應的響應。
在學習這個事件之前,我們先來看一個例子。假設我們有一個文本框,只允許用戶輸入數字。那么我們可以這樣寫:
<input type="text" onkeydown="if(event.keyCode<48 || event.keyCode>57)event.returnValue=false;">
在上面的代碼中,我們通過onkeydown事件監聽到用戶的按鍵。如果用戶按下的不是數字鍵,就通過event.returnValue=false阻止了默認的輸入行為,實現了限制輸入數字的效果。
onkeydown事件也可以與if語句結合實現不同的效果,如:
<input type="text" onkeydown="if(event.keyCode==13)alert('您按下了回車鍵!');">
在上面的代碼中,我們監聽到了用戶按下了回車鍵,然后通過alert函數彈出一個消息框。
除了如果語句,我們也可以使用switch語句來處理不同的按鍵響應。例如:
<input type="text" onkeydown="switch(event.keyCode){ case 13:alert('您按下了回車鍵!');break; case 37:alert('您按下了←鍵!');break; case 38:alert('您按下了↑鍵!');break; case 39:alert('您按下了→鍵!');break; case 40:alert('您按下了↓鍵!');break; }">
在上面的代碼中,我們使用switch語句對不同的按鍵進行處理,分別彈出不同的消息框。
onkeydown事件除了能夠監聽按鍵外,還能夠監聽鍵盤的一些其他事件。例如,如果我們只想要在用戶按下并按住某個鍵一段時間后才響應,我們可以使用onkeydown與setTimeout函數結合來實現:
<input type="text" onkeydown="var timer=setTimeout(function(){ alert('您已經按下并按住了此鍵超過1秒了!'); },1000);">
在上面的代碼中,我們用setTimeout函數開啟了一個1秒的計時器,在計時器到時后彈出一個消息框。
最后,我們需要注意的是,onkeydown事件在各個瀏覽器中實現不一定一致。有些瀏覽器可能會屏蔽掉某些按鍵或按鍵組合,或者攔截一些特殊按鍵(例如F1),因此在使用onkeydown時需要注意兼容性。