js 禁用只读文本框获得焦点时的退格键

发现只读文本框有一个缺陷,当鼠标焦点在文本框里面的时候按回退键(backSpace), 会退回到前一个页面

有时候难免会要用到只读的文本框,可今天发现只读文本框有一个缺陷,当鼠标焦点在文本框里面的时候按回退键(backSpace), 会退回到前一个页面,这个问题就有点烦恼了,用户又不清楚可不可以输入,他如果看到文本框想去改里面的东西,按一下,有可能前面所有填写的数据就会丢失.故此写了个方法,供大伙有需要时放入<script></script>,保管你称心如意。

  //禁用文本框为只读的时候,退格回到前一面
    document.documentElement.onkeydown = function(evt)
    {
        var b = !!evt, oEvent = evt || window.event;
        if (oEvent.keyCode == 8)
         {
            var node = b ? oEvent.target : oEvent.srcElement;
            var reg = /^(input|textarea)$/i, regType = /^(text|textarea)$/i;
            if (!reg.test(node.nodeName) || !regType.test(node.type) || node.readOnly || node.disabled)
            {
                if (b)
                {
                    oEvent.stopPropagation();
                }
                else
                {
                    oEvent.cancelBubble = true;
                    oEvent.keyCode = 0;
                    oEvent.returnValue = false;
                }
            }
        }
    }  

详细出处参考:http://www.jb51.net/article/23187.htm


 

原文地址:https://www.cnblogs.com/lbg280/p/1772273.html