国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

JS禁用瀏覽器退格鍵實(shí)現(xiàn)思路及代碼

2019-11-20 21:49:31
字體:
供稿:網(wǎng)友

上周提交了一個(gè)項(xiàng)目(內(nèi)部使用的),一同事提出個(gè)BUG,說要禁用退格鍵(backspace或者叫后退鍵),因?yàn)檫@和他的習(xí)慣不一樣,擔(dān)心萬一文字錄入一半,他按了退格鍵,那整個(gè)頁面的內(nèi)容就白填了,然后信誓旦旦的說他做的系統(tǒng)中后退鍵都是不能用的,我這個(gè)系統(tǒng)有問題,當(dāng)時(shí)因?yàn)槭露啵话堰@個(gè)問題記錄下來了,后來查了下他以前做的項(xiàng)目,也沒有對退格鍵進(jìn)行處理。自己的項(xiàng)目都沒處理,到我這嚷嚷來了,算了,不和年輕人一般見識。不就禁用個(gè)后退鍵,簡單。

其實(shí)說禁用也不是完全禁用,后退鍵在各瀏覽器下默認(rèn)為點(diǎn)擊了一下后退按鈕,只要保證正常的文字錄入還可以用,其他情況下的退格鍵一律禁掉。看代碼吧。

當(dāng)鍵盤敲下后退鍵(Backspace)后
1、禁止瀏覽器自動后退
2、但不影響密碼、單行文本、多行文本輸入框等的回退操作

解決方案:

網(wǎng)上搜了一下,發(fā)現(xiàn)有不少解決方案,相比較之下,zywang的方案較佳

在其基礎(chǔ)上,進(jìn)行補(bǔ)充和完善,以滿足需求,整理后的代碼如下:
代碼一、核心代碼:

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; //當(dāng)敲Backspace鍵時(shí),事件源類型為密碼或單行、多行文本的, //并且readOnly屬性為true或disabled屬性為true的,則退格鍵失效 var flag1 = ev.keyCode == 8 && (t == "password" || t == "text" || t == "textarea") && (vReadOnly == true || vDisabled == true); //當(dāng)敲Backspace鍵時(shí),事件源類型非密碼或單行、多行文本的,則退格鍵失效 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; 

代碼二、

 function bindBackEvent() { //防止退格鍵 	$(document).keydown(function(e){ 		e = window.event || e;	 	var code = e.keyCode || e.which;	 	if (code == 8) {	 		var src = e.srcElement || e.target;	 		var tag = src.tagName;	 		if (tag != "INPUT" && tag != "TEXTAREA") {	 			e.returnValue = false; 	 			return false;	 		} else if ((tag == "INPUT" || tag == "TEXTAREA") && src.readOnly == true) {	 			e.returnValue = false;	 			return false; 	 		}	 	} 	}); }


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 阿勒泰市| 三都| 秦安县| 吉木乃县| 洛隆县| 江源县| 辉南县| 红桥区| 大关县| 四子王旗| 凭祥市| 金阳县| 叶城县| 山东| 海淀区| 东兰县| 兴国县| 德兴市| 松阳县| 庄浪县| 雷州市| 武宁县| 彰武县| 米易县| 萝北县| 永仁县| 北川| 禄劝| 泰来县| 尉氏县| 武威市| 怀远县| 贵德县| 宾川县| 宝清县| 肃南| 浦东新区| 达孜县| 水城县| 陇南市| 赣榆县|