DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> JavaScript如何禁止Backspace鍵
JavaScript如何禁止Backspace鍵
編輯:關於JavaScript     

今天在IE浏覽器下發現,當把使用readonly="readonly"屬性將文本框設置成只讀<input type="text" readonly="readonly"/>時有一個奇怪的問題:如果光標進入只讀文本框,然後按下Backspace鍵,就會跳轉到上一個頁面,效果就像點擊了浏覽器的後退按鈕返回前一個頁面一樣,而在火狐和google下沒有這樣的問題出現,為了解決這個問題,寫了一個如下的處理方法,如果文本框是只讀的,那麼就禁用Backspace鍵
代碼如下:

//處理鍵盤事件 禁止後退鍵(Backspace)密碼或單行、多行文本框除外
 function banBackSpace(e){ 
  var ev = e || window.event;//獲取event對象 
  var obj = ev.target || ev.srcElement;//獲取事件源 
  var t = obj.type || obj.getAttribute('type');//獲取事件源類型 
  //獲取作為判斷條件的事件類型
  var vReadOnly = obj.getAttribute('readonly');
  //處理null值情況
  vReadOnly = (vReadOnly == "") ? false : vReadOnly;
  //當敲Backspace鍵時,事件源類型為密碼或單行、多行文本的,
  //並且readonly屬性為true或enabled屬性為false的,則退格鍵失效
  var flag1=(ev.keyCode == 8 && (t=="password" || t=="text" || t=="textarea") 
     && vReadOnly=="readonly")?true:false;
  //當敲Backspace鍵時,事件源類型非密碼或單行、多行文本的,則退格鍵失效
  var flag2=(ev.keyCode == 8 && t != "password" && t != "text" && t != "textarea")
     ?true:false;  
  
  //判斷
  if(flag2){
   return false;
  }
  if(flag1){ 
   return false; 
  } 
 }

window.onload=function(){
 //禁止後退鍵 作用於Firefox、Opera
 document.onkeypress=banBackSpace;
 //禁止後退鍵 作用於IE、Chrome
 document.onkeydown=banBackSpace;
}

加上這樣的處理之後,就可以輕松解決“只讀輸入框在IE下按下Backspace鍵回退到前一個頁面”的問題了。

希望大家喜歡這篇文章,繼續關注小編更新整理的文章。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved