设置readOnly = false IE后无法更改文本

时间:2014-08-22 22:45:43

标签: javascript html internet-explorer input readonly

我有这个示例代码,并且它在IE中不起作用。有IE漏洞吗?

<input type="text" readonly="true" onclick="setReadonlyfalse(this)" />

<script type="text/javascript">
    function setReadonlyfalse(ed){
        ed.readOnly = false;
    }
</script>

我模拟了一种情况,即在我的网格显示编辑器后,我收到服务器的响应,将我的编辑器设置为readonly = false。 (它是用readonly = true渲染的)

修改

我使用ExtJS 3.4,代码执行此操作:

/**
 * Sets the read only state of this field.
 * @param {Boolean} readOnly Whether the field should be read only.
 */
setReadOnly : function(readOnly){
    if(this.rendered){
        this.el.dom.readOnly = readOnly;
    }
    this.readOnly = readOnly;
}

EDIT2 : 我已将代码调整为更正确

<input type="text" readonly="readonly" onclick="removeReadonly(this)" value="hehehe" />
<script type="text/javascript">
    function removeReadonly(ed){
        ed.removeAttribute("readonly");
    }
</script>

1 个答案:

答案 0 :(得分:0)

以编程方式从元素中删除readonly属性,然后将readOnly设置为false

ed.removeAttribute('readonly'); // only needed the first time
ed.readOnly = false;

是的,这是一个IE错误。