<div class="codetitle"> <span><a style="CURSOR: pointer" data="59146" class="copybut" id="copybut59146" onclick="doCopy('code59146')"><u>复制代码</u></a></span> 代码如下:</div> <div class="codebody" id="code59146"> <br><script language="javascript" for="document" event="onkeydown"> <BR>if(event&&event.srcElement){ <BR>srcEle=event.srcElement; <BR>if((event.keyCode||event.charCode)==13 && srcEle.tagName.toUpperCase()=='INPUT' && srcEle.type.toUpperCase()=='TEXT') <BR>eventevent.keyCode=event.charCode=9; <BR>} <BR></script> <br> </div> <br>如果注册了多个键盘监听事件,虽然在代码段中修改keyCode值,其它键盘监听事件获得的仍然是原始keyCode。这和JavaScript事件模型有关(记得是分别从各个注册的监听事件开始,各自沿着自己的路线进行事件传播)。 <br>以下是测试代码: <br><div class="htmlarea"> <textarea id="runcode67432"> <!-- 这里测试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> <input type="text" onkeydown="debug(event);"> <input type="text"> <input type="text"> <input type="text"> <input type="button" value="Button"> 按键代码:<span id="info"></span> </textarea><br><input onclick="runEx('runcode67432')" type="button" value="运行代码"> <input onclick="doCopy('runcode67432')" type="button" value="复制代码"> <input onclick="doSave(runcode67432)" type="button" value="保存代码">[Ctrl+A 全选 注:<a href="http://www.jb51.net/article/23421.htm" title="查看具体详情" target="_blank">如需引入外部Js需刷新才能执行</a>]</div>