删除web文本框中的内容需要或者文本框失去焦点,点击“Backspace”键时页面回退,屏蔽页面回退键的方法
生活随笔
收集整理的這篇文章主要介紹了
删除web文本框中的内容需要或者文本框失去焦点,点击“Backspace”键时页面回退,屏蔽页面回退键的方法
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
問題:web文本框中的內(nèi)容需要?jiǎng)h除或者文本框失去焦點(diǎn),點(diǎn)擊“Backspace”鍵時(shí),頁(yè)面就回退了,下面是一種屏蔽頁(yè)面回退鍵的方法。
? ? ? ? ? ?
?
原因:當(dāng)文本輸入框設(shè)置為只讀時(shí),按后退鍵默認(rèn)都會(huì)執(zhí)行網(wǎng)頁(yè)后移的功能。如:
?
<input type="text" name="clientId" class="text1" id="clientId" readonly="true" value="<%=client.getClientId() %>">?
?
解決方法:禁用backspace鍵的后退功能,程序如下:
?
?
<script language="javascript">function forbidBackSpace(e) { var ev = e || window.event; //獲取event對(duì)象 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; //禁止后退鍵 作用于Firefox、Opera document.onkeypress = forbidBackSpace; //禁止后退鍵 作用于IE、Chrome document.onkeydown = forbidBackSpace; </script>?
?
另外,網(wǎng)上搜這一問題時(shí),網(wǎng)友反應(yīng)還有一種方法,但好像解決不了我的問題:
?
<script?language="JavaScript">document.onkeydown?=?check;function?check(e)?{var?code;if?(!e)?{ var?e?=?window.event; }if?(e.keyCode)?{ code?=?e.keyCode;}else?if?(e.which)?{code?=?e.which; }var a=((event.keyCode?==?8)?&& ((event.srcElement.type?!=?"text"?&&?event.srcElement.type?!=?"textarea"?&& ?event.srcElement.type?!=?"password")?||?event.srcElement.readOnly?==?true))?||?((event.ctrlKey)?&&? ((event.keyCode?==?78)?||?(event.keyCode?==?82))?)?||???(event.keyCode?==?116) if?(a)?{???? event.keyCode?=?0;?event.returnValue?=?false;?}return?true;} </script>?
?
?
?
?
最后,附上Keycode對(duì)照表:http://www.cnblogs.com/shipengzhi/articles/2035010.html
?
?
總結(jié)
以上是生活随笔為你收集整理的删除web文本框中的内容需要或者文本框失去焦点,点击“Backspace”键时页面回退,屏蔽页面回退键的方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 王勇DRP项目浏览器无法正常显示问题
- 下一篇: java.lang.ClassNotFo