+ -
当前位置:首页 → 问答吧 → 【已解决】将textarea设置为readonly就无法响应事件了,请问该如何解决呢?

【已解决】将textarea设置为readonly就无法响应事件了,请问该如何解决呢?

时间:2011-01-25

来源:互联网

本帖最后由 zeus82 于 2011-03-09 11:43 编辑

<textarea id="tmpCondition" name="tmpCondition" readonly="readonly" rows="4" cols="82" onkeydown="noBackSpace()">
</textarea>

这个文本框不允许用户键盘输入 必须点击界面上的button输入,所以设置为了readonly。现在想屏蔽BackSpace键,但onkeydown事件
根本不响应。 所以当鼠标点击文本框,再点BackSpace,页面就会后退。

哪位知道解决办法 谢谢!

作者: zeus82   发布时间: 2011-01-25

原来的代码是:
if ((event.keyCode == &&
        (event.srcElement.type != "text" &&
                 event.srcElement.type != "textarea" &&
         event.srcElement.type != "password"){
              event.keyCode=0;
              event.returnvalue=false;
}

现在改成:
var elementType = event.srcElement.type;
if (event.keyCode == {
        if (elementType != "text" || elementType != "textarea" || elementType != "password"{ //屏蔽退格删除键            
                  event.keyCode=0;
                       event.returnvalue=false;
                }
                 else if(event.srcElement.readOnly){
                       event.keyCode=0;
                       event.returnvalue=false;
                 }
        }

主要是增加了对文本框只读状态的判断,如果是只读状态,也返回false ,之前没有这个判断导致焦点在只读状态的文本框时无法屏蔽退格键。

作者: zeus82   发布时间: 2011-03-09