美文网首页
web项目中禁止backspace键后退

web项目中禁止backspace键后退

作者: 游园拾忆 | 来源:发表于2018-11-20 16:40 被阅读13次

    当键盘敲下后退键(Backspace)后
    1、禁止浏览器自动后退
    2、但不影响密码、单行文本、多行文本输入框等的回退操作

    <script type="text/javascript">   
    //处理键盘事件 禁止后退键(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');   
        var vEnabled = obj.getAttribute('enabled');   
        //处理null值情况   
        vReadOnly = (vReadOnly == null) ? false : vReadOnly;   
        vEnabled = (vEnabled == null) ? true : vEnabled;   
          
        //当敲Backspace键时,事件源类型为密码或单行、多行文本的,   
        //并且readonly属性为true或enabled属性为false的,则退格键失效   
        var flag1=(ev.keyCode == 8 && (t=="password" || t=="text" || t=="textarea")   
        && (vReadOnly==true || vEnabled!=true))?true:false;   
          
        //当敲Backspace键时,事件源类型非密码或单行、多行文本的,则退格键失效   
        var flag2=(ev.keyCode == 8 && t != "password" && t != "text" && t != "textarea")?true:false;   
          
        //判断   
        if(flag2){   
            return false;   
        }   
        if(flag1){   
            return false;   
        }   
    }   
      
    //禁止后退键 作用于Firefox、Opera   
    document.onkeypress=banBackSpace;   
    //禁止后退键 作用于IE、Chrome   
    document.onkeydown=banBackSpace;
    
    </script>  
    
    

    相关文章

      网友评论

          本文标题:web项目中禁止backspace键后退

          本文链接:https://www.haomeiwen.com/subject/znvrlxtx.html