代码改变世界

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

2010-04-21 10:26  北冥有魚,其名為坤、  阅读(570)  评论(0编辑  收藏  举报

有时候难免会要用到只读的文本框,可今天发现只读文本框有一个缺陷,当鼠标焦点在文本框里面的时候按回退键(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;
                }
            }
        }
    }