关于键盘事件中keyCode、which和charCode 的兼容性测试

http://www.cnblogs.com/hsapphire/archive/2009/12/18/1627047.html

测试结果
在IE下:
>> 支持keyCode
>> 不支持which和charCode,二者值为 undefined

在Firefox下:
>> 支持keyCode,除功能键外,其他键值始终为 0
>> 支持which和charCode,二者的值相同

 

在Google下:
>> charCode始终为 0
>> 支持which和keyCode,二者的值相同

在Opera下:
>> 支持keyCode和which,二者的值相同
>> 不支持charCode,值为 undefined

测试代码

  1. <script type="text/javascript">
  2. //By 枫岩@CnLei.Com
  3. function $(s){
  4.   return document.getElementById(s)?document.getElementById(s):s;
  5. }
  6. function viewKeyInfo(e){
  7.   var currKey=0,CapsLock=0;
  8.   var e=e||event;
  9.   currKey=e.keyCode||e.which||e.charCode;
  10.   CapsLock=currKey >=65 && currKey <=90;
  11.   $("type").innerHTML=e['type'];
  12.   $("currKey").innerHTML=String.fromCharCode(currKey);
  13.   $("Decimal").innerHTML=currKey;
  14.   $("keyCode").innerHTML=e['keyCode'];
  15.   $("charCode").innerHTML=e['charCode'];
  16.   $("caps").innerHTML=CapsLock;
  17.   $("shiftKey").innerHTML=e['shiftKey'];
  18.   $("ctrlKey").innerHTML=e['ctrlKey'];
  19.   $("repeat").innerHTML=e['repeat'];
  20.   $("which").innerHTML=e['which'];
  21. }
  22. document.onkeypress= viewKeyInfo;
  23. </script>
  24. <p>请按下任意键看测试效果:</p>
  25. type:<span id="type"></span><br />
  26. 当前Key:<span id="currKey"></span><br />
  27. Decimal:<span id="Decimal"></span><br />
  28. keyCode:<span id="keyCode"></span> <strong>注:在FF下,keyCode始终为0</strong><br />
  29. which:<span id="which"></span> <strong>注:在IE下,which始终为undefined ; 在Opera下,keyCode和charCode二者的值相同</strong><br />
  30. charCode:<span id="charCode"></span> <strong>注:在IE、Opera下,charCode始终为undefined ; 在FF下,which和charCode二者的值相同</strong><br />
  31. 大写:<span id="caps"></span><br />
  32. altKey:<span id="altKey"></span><br />
  33. ctrlKey:<span id="ctrlKey"></span><br />
  34. shiftKey:<span id="shiftKey"></span><br />
  35. repeat:<span id="repeat"></span><br />
  36. <style type="text/css" media="all">
  37. body {color:#999;font:normal 14px tahoma,宋体,Geneva,Arial,sans-serif;}
  38. span {color:#f00;font-weight:bold;padding:0 5px;}
  39. strong {color:#090;font-weight:normal;padding:0 5px;}
  40. </style>

jquery 回车事件实现代码

http://www.jb51.net/article/28074.htm

// 键盘事件
1、keydown() 
keydown事件会在键盘按下时触发. 

2、keyup() 
keyup事件会在按键释放时触发,也就是你按下键盘起来后的事件 

3、keypress() 
keypress事件会在敲击按键时触发,我们可以理解为按下并抬起同一个按键

代码如下:

// 回车键事件
// 绑定键盘按下事件 
   $(document).keypress(function(e) { 
    // 回车键事件 
       if(e.which == 13) { 
   jQuery(".confirmButton").click(); 
       } 
   });
// 上下键事件
$(document).keydown(function(event){ 
  //判断当event.keyCode 为37时(即左方面键),执行函数to_left(); 
  //判断当event.keyCode 为39时(即右方面键),执行函数to_right(); 

  if(event.keyCode == 37){ 
     to_left();  
  }else if (event.keyCode == 39){  
     to_right();  
  }  
});

说明:由于浏览器键盘按下事件的不同,可能导致部分事件不能正常操作,所以推荐keydown事件进行操作!

Jquery 监视按键,按下回车键触发某方法

代码如下:

<script type="text/javascript">
$(function () {
$('input:text:first').focus(); //把焦点放在第一个文本框
var $inp = $('input'); //所有的input元素
$inp.keypress(function (e) { //这里给function一个事件参数命名为e,叫event也行,随意的,e就是IE窗口发生的事件。
var key = e.which; //e.which是按键的值
if (key == 13) {
alert("aaa");
}
});
});



问题:
拖了一个Login控件,然后给它转化为template,用于自定义开发。



下面的代码中,我捕捉到了文本栏的回车按键,这时我要去触发LoginButton来提交登录信息进行验证,可是我使用$(" [id$=LoginButton]").click();只在firefox上有效,在IE无效,歪打正着的尝试一下$(" [id$=LoginButton]").focus();  ,这个可以在IE上起效,在IE上focus()即完成了对焦又执行了点击,不解啊。呵呵~

代码如下:

$inp.keypress(function (event) {
    var key = event.which;
    if (key == 13) {
        $("[id$=LoginButton]").click(); //支持firefox,IE武校
        //$('input:last').focus();
        $("[id$=LoginButton]").focus();  //支持IE,firefox无效。

//以上两句实现既支持IE也支持 firefox
    }
});



代码如下:

全局:

代码如下:

$(function(){
document.onkeydown = function(e){
var ev = document.all ? window.event : e;
if(ev.keyCode==13) {
$('#FormId).submit();//处理事件
}
}
});


某个控件:

代码如下:

$('#id').keydown(function(e){
if(e.keyCode==13){
$('#FormId).submit(); //处理事件
}
});


if (window.event.keyCode==13) window.event.keyCode=0   //这样就取消回车键了
如果想模拟Tab键,只要写成  if (window.event.keyCode==13) window.event.keyCode=9 就行了,它会跳到另一个元素上。

posted @ 2015-08-14 10:42  江湖丶丿新进程  阅读(590)  评论(0)    收藏  举报