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

来源:互联网 发布:c语言 贪心 编辑:程序博客网 时间:2024/06/05 21:51

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

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


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

<script language='JavaScript'>

function 
onKeyPress_(e) {
   
// 這一行讓 ie 的判斷方式和 Firefox 一樣。
   
if (window.event) { evente.which e.keyCode; } else if (!e.whiche.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。

原创粉丝点击