複製代碼 代碼如下:
<script language='javascript' for='document' event='onkeydown'>
if(event&&event.srcElement){
srcEle=event.srcElement;
if((event.keyCode||event.charCode)==13 && srcEle.tagName.toUpperCase()=='INPUT' && srcEle.type.toUpperCase()=='TEXT')
eventevent.keyCode=event.charCode=9;
}
</script>
如果註冊了多個鍵盤監聽事件,雖然在程式碼片段中修改keyCode值,其它鍵盤監聽事件獲得的仍然是原始keyCode。這和JavaScript事件模型有關(記得是分別從各個註冊的監聽事件開始,各自沿著自己的路線進行事件傳播)。
以下是測試代碼:
<html> <HEAD> <!-- 這裡測試jQuery的鍵盤響應是否正常 --> <script src="jquery.js"></script> <script src="jquery.hotkeys.js"></script> <script> $(function(){ $(document).keydown(function(evt){ debug(evt); }); }); </script> <!-- 這是斷行符號轉換行的程式碼片段--> <script language='javascript' for='document' event='onkeydown'> if(event&&event.srcElement){ srcEle=event.srcElement; if((event.keyCode||event.charCode)==13 && srcEle.tagName.toUpperCase()=='INPUT' && srcEle.type.toUpperCase()=='TEXT') event.keyCode=event.charCode=9; } </script> <script> function debug(evt){ document.getElementById('info').innerText=evt.keyCode||evt.charCode; } </script> </hEAD> <BODY> <input type=text onkeydown="debug(event);"> <input type=text> <input type=text> <input type=text> <input type=button value="Button"> 按鍵代碼:<span id=info></span> </html>
[Ctrl+A 全選 注:如需引入外部Js需重新整理才能執行]