針對 ie 和 Firefox,簡化 JavaScript 的 onKeyPress 判斷! 分享

簡化的關鍵,僅在於判斷前加一行:

if ( window . event ) {  event e . which  e . keyCode ; } else if (! e . which e . which  e . keyCode ;


這一行讓 ie 的判斷方式和 Firefox 一樣。

< script language = 'JavaScript' >

function 
onKeyPress_ ( e ) {
   
// 這一行讓 ie 的判斷方式和 Firefox 一樣。
   
if ( window . event ) {  event e . which  e . keyCode ; } else if (! e . which e . which  e . keyCode ;

   var 
code  e . which // 輸入鍵 的 ASCII 碼。
   
var  char  String . fromCharCode ( e . which );  // 輸入鍵字元。
   
var  isAlt  e . altKey // 是否按下 Alt 鍵。
   
var  isCtrl  e . ctrlKey // 是否按下 Ctrl 鍵。
   
var  isShift  e . shiftKey // 是否按 下 Shift 鍵。
   // ...

   
if ( code == 13 ) {  // 判斷輸入鍵是否為 Enter 鍵。
      //...
   
}

   if (
48 <= code  &&  code <= 57 ) {  // 判斷輸入鍵是否為數 字 0~9。
      //...
   
}

   if (
65 <= code  &&  code <= 90 ) {  // 判斷輸入鍵是否為大寫字母 A~Z。
      //...
   
}

   if (
97 <= code  &&  code <= 122 ) {  // 判斷輸入鍵是否為小 寫字母 a~z。
      //...
   
}

   switch (
code ) {
      case 
38 //up arrow  
      
case  40 //down arrow
      
case  37 //left arrow
      
case  39 //right arrow
      
case  33 //page up  
      
case  34 //page down  
      
case  36 //home  
      
case  35 //end                  
      
case  13 //enter  
      
case  9 :   //tab  
      
case  27 //esc  
      
case  16 //shift  
      
case  17 //ctrl  
      
case  18 //alt  
      
case  20 //caps lock
      
case  8 :   //backspace  
      
case  46 //delete
   
}

   return 
true ;   // 按鍵合法,如果 是 input 觸發的事件,字元會加入 input 的 value 中。
   
return  false // 按鍵不合法,如果是 input 觸發的事件,字元不會加入 input 的 value 中。
}
</script>



input 控制判斷語法:

< input type = text value = ''  onKeyPress = 'return onKeyPress_(event)'  />



全 域控制判斷語法:

< script language = 'JavaScript' >
document . onkeypress  onKeyPress_ // 設定整個網頁的按鍵輸入由 onKeyPress_ 函數控制判斷。
</script>



注 意,以上程式碼僅測試過 ie 和 Firefox。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值