我有一个简单的要求,即在单击时启用只读文本字段并在其中输入值。
为此我遵循了以下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 中 - 我需要单击两次才能输入值(第一次单击时文本字段获得焦点但无法输入值,其行为类似于readyonly)
我也尝试过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>
在此之后我可以输入值??!!
最佳答案
您应该使用 jQuery 来将字段设置为禁用(即只读):
function disableField(){
$("#recordname").attr("disabled", "disabled");
}
function enableField(){
$("#recordname").removeAttr("disabled");
}
这非常简单,并且在 IE 上也适用于我。
关于javascript - Onclick 无法在 IE8 和 IE7 中启用只读字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11431360/