js屏蔽键盘退格键(BackSpace)
系统页面列表某一列数据可编辑,用户反应 编辑数据的时候使用退格键BackSpace删除,有时会出现退出系统情况,为了防止出现类似的情况,需要再系统中将 点击退格键退回到上一页或者退出系统的功能禁用,根据需求需要实现以下功能:
当键盘敲下后退键(Backspace)后 1、禁止浏览器自动后退 2、但不影响密码、单行文本、多行文本输入框等的回退操作
代码如下:
1 <script type="text/javascript"> 2 3 //处理键盘事件 禁止后退键(Backspace)密码或单行、多行文本框除外 4 function banBackSpace(e){ 5 var ev = e || window.event;//获取event对象 6 var obj = ev.target || ev.srcElement;//获取事件源 7 8 var t = obj.type || obj.getAttribute('type');//获取事件源类型 9 10 //获取作为判断条件的事件类型 11 var vReadOnly = obj.getAttribute('readonly'); 12 var vEnabled = obj.getAttribute('enabled'); 13 //处理null值情况 14 vReadOnly = (vReadOnly == null) ? false : vReadOnly; 15 vEnabled = (vEnabled == null) ? true : vEnabled; 16 17 //当敲Backspace键时,事件源类型为密码或单行、多行文本的, 18 //并且readonly属性为true或enabled属性为false的,则退格键失效 19 var flag1=(ev.keyCode == 8 && (t=="password" || t=="text" || t=="textarea") 20 && (vReadOnly==true || vEnabled!=true))?true:false; 21 22 //当敲Backspace键时,事件源类型非密码或单行、多行文本的,则退格键失效 23 var flag2=(ev.keyCode == 8 && t != "password" && t != "text" && t != "textarea") 24 ?true:false; 25 26 //判断 27 if(flag2){ 28 return false; 29 } 30 if(flag1){ 31 return false; 32 } 33 } 34 35 //禁止后退键 作用于Firefox、Opera 36 document.οnkeypress=banBackSpace; 37 //禁止后退键 作用于IE、Chrome 38 document.οnkeydοwn=banBackSpace; 39 40 </script>
原文链接:https://blog.csdn.net/tonyd1989/article/details/7711853