JavaScript如何禁止Backspace鍵
今天在IE瀏覽器下發(fā)現(xiàn),當(dāng)把使用readonly="readonly"屬性將文本框設(shè)置成只讀<input type="text" readonly="readonly"/>時(shí)有一個(gè)奇怪的問題:如果光標(biāo)進(jìn)入只讀文本框,然后按下Backspace鍵,就會(huì)跳轉(zhuǎn)到上一個(gè)頁面,效果就像點(diǎn)擊了瀏覽器的后退按鈕返回前一個(gè)頁面一樣,而在火狐和google下沒有這樣的問題出現(xiàn),為了解決這個(gè)問題,寫了一個(gè)如下的處理方法,如果文本框是只讀的,那么就禁用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;
//當(dāng)敲Backspace鍵時(shí),事件源類型為密碼或單行、多行文本的,
//并且readonly屬性為true或enabled屬性為false的,則退格鍵失效
var flag1=(ev.keyCode == 8 && (t=="password" || t=="text" || t=="textarea")
&& vReadOnly=="readonly")?true:false;
//當(dāng)敲Backspace鍵時(shí),事件源類型非密碼或單行、多行文本的,則退格鍵失效
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鍵回退到前一個(gè)頁面”的問題了。
希望大家喜歡這篇文章,繼續(xù)關(guān)注小編更新整理的文章。
- JS實(shí)現(xiàn)禁止高頻率連續(xù)點(diǎn)擊的方法【基于ES6語法】
- js禁止瀏覽器的回退事件
- js控制文本框禁止輸入特殊字符詳解
- JS實(shí)現(xiàn)禁止鼠標(biāo)右鍵的功能
- JS禁止查看網(wǎng)頁源代碼的實(shí)現(xiàn)方法
- JavaScript禁止用戶多次提交的兩種方法
- javascript禁止超鏈接跳轉(zhuǎn)的方法
- JavaScript代碼實(shí)現(xiàn)禁止右鍵、禁選擇、禁粘貼、禁shift、禁ctrl、禁alt
- javascript實(shí)現(xiàn)禁止鼠標(biāo)滾輪事件
- 深入探討JavaScript、JQuery屏蔽網(wǎng)頁鼠標(biāo)右鍵菜單及禁止選擇復(fù)制
- JS實(shí)現(xiàn)禁止用戶使用Ctrl+鼠標(biāo)滾輪縮放網(wǎng)頁的方法
相關(guān)文章
js實(shí)現(xiàn)點(diǎn)擊按鈕彈出上傳文件的窗口
本文主要介紹了js實(shí)現(xiàn)點(diǎn)擊按鈕彈出上傳文件的窗口的實(shí)例方法。具有很好的參考價(jià)值,需要的朋友一起來看下吧2016-12-12
微信小程序結(jié)合Storage實(shí)現(xiàn)搜索歷史效果
這篇文章主要為大家詳細(xì)介紹了微信小程序結(jié)合Storage實(shí)現(xiàn)搜索歷史效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-05-05
JavaScript變量作用域_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
這篇文章主要介紹了JavaScript變量作用域,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-06-06
Bootstrap.css與layDate日期選擇樣式起沖突的解決辦法
這篇文章主要為大家詳細(xì)介紹了BootStrap.css與layDate日期選擇樣式起沖突的解決辦法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04

