咱們在真實的項目開發中常常會使用JS 對鍵盤上的一些按鍵進行禁用,常見的好比說退格鍵(backspace/ 後退鍵),我在一個項目中就遇到過在頁面編輯的時候禁用掉退格鍵,由於退格鍵會發生頁面後退,這樣編輯的內容都會失去了,很是的噁心人。ok ,廢話少說,直接上代碼。
<script type="text/javascript"> //處理鍵盤事件 禁止後退鍵(Backspace)密碼或單行、多行文本框除外 function forbidBackSpace(e) { var ev = e || window.event; //獲取event對象 var obj = ev.target || ev.srcElement; //獲取事件源 var t = obj.type || obj.getAttribute('type'); //獲取事件源類型 //獲取做爲判斷條件的事件類型 var vReadOnly = obj.readOnly; var vDisabled = obj.disabled; //處理undefined值狀況 vReadOnly = (vReadOnly == undefined) ? false : vReadOnly; vDisabled = (vDisabled == undefined) ? true : vDisabled; //當敲Backspace鍵時,事件源類型爲密碼或單行、多行文本的, //而且readOnly屬性爲true或disabled屬性爲true的,則退格鍵失效 var flag1 = ev.keyCode == 8 && (t == "password" || t == "text" || t == "textarea") && (vReadOnly == true || vDisabled == true); //當敲Backspace鍵時,事件源類型非密碼或單行、多行文本的,則退格鍵失效 var flag2 = ev.keyCode == 8 && t != "password" && t != "text" && t != "textarea"; //判斷 if (flag2 || flag1) return false; } //禁止後退鍵 做用於Firefox、Opera document.onkeypress = forbidBackSpace; //禁止後退鍵 做用於IE、Chrome document.onkeydown = forbidBackSpace; </script>