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

posted @ 2021-12-22 09:20  敲键盘的喵~  阅读(735)  评论(0编辑  收藏  举报