1

我有一个简单的要求,即在单击时启用只读文本字段并在其中输入值。

为此,我遵循了 js

function enableField(){
document.getElementById("recordname").readOnly = false;  
}

html代码是

<input id="recordname" cssClass="Gry999"  maxLength="35"  readonly="true" onclick="enableField()" name="recordname"  onkeypress="return validateCustomize(event);"/>

在所有浏览器(firefox,chrome,ie 9)中,此代码按预期工作,但在 IE8 中 - 我需要单击两次才能输入值(在第一次单击时,文本字段是 gettign focus 但无法输入值,它的行为就像就绪)

我也尝试过 jquery(从输入字段中删除 onclik attr 后)但没有帮助

$(document).ready(function() {                 
     $('#recordname').on('click',function() {           
     $('.jqueryclickcls').attr('readonly', false);   
  });
});

更新:当此代码从任何其他控件触发时 ,相同的 document.getElementById("recordname").readOnly = false; 代码有效,例如在单击另一个链接启用文本字段时

function enableField(){
    document.getElementById("recordname").readOnly = false;  
document.getElementById("recordname").focus();
    }
<a onclick="enableField()" >Enable Field</a>

在此之后我可以输入值??!!

4

3 回答 3

0

您应该使用 jQuery 将字段设置为禁用(即只读):

function disableField(){
    $("#recordname").attr("disabled", "disabled");
}

function enableField(){
    $("#recordname").removeAttr("disabled");
}

这非常简单,在 IE 上也适用于我。

于 2012-07-11T11:14:49.653 回答
0

小心,是“ readOnly”而不是“ readonly

尝试

document.getElementById("recordname").setAttribute('readOnly', '');

或者

document.getElementById('champ').removeAttribute('readOnly');
于 2012-07-11T11:14:58.660 回答
0

尝试

document.getElementById("recordname").disabled = false; 
于 2012-07-11T11:18:41.283 回答