我有一个带有选择列表和单选按钮的HTML表单,这两个表单最初都设置为disabled = true。在某些时候,这些元素是通过JavaScript启用的(即,disabled = false)。这在IE和Chrome中运行良好,但在FireFox中,该元素仍然处于禁用状态。它似乎已启用,但不响应鼠标点击。当我使用FireBug检查其中一个元素时,disabled属性为false。在处理最初禁用的表单元素时,FireFox是否存在已知问题,然后启用?
感谢。
答案 0 :(得分:1)
我能够通过使用jQuery来设置和删除已禁用的属性而不是直接设置它来解决此问题。我不知道它在幕后做了什么让它发挥作用。
$(control).attr('disabled', 'disabled');
$(control).removeAttr('disabled');
答案 1 :(得分:1)
在我的脑袋里摔了4个小时后,这对我有用了:
document.getElementById(ID).disabled = true|false; // this works only in IE
document.getElementbyId(ID).setAttribute('disabled', true|false); // This works both in IE\FF
答案 2 :(得分:0)
适合我:
<select id="a" disabled="true">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
</select>
<script type='text/javascript'>
document.getElementById('a').disabled=false
</script>
答案 3 :(得分:0)
我一直在努力解决同样的问题。我还在测试,但发现将表单元素包装在span / div标签中,并将onclick附加到span / div(带填充)似乎可行。唯一剩下的问题是设置z-index覆盖输入并在点击后更改它,以便它在表单输入下面(不确定是否可能 - 我不喜欢阅读文档)。
function edit(ID) { // need to add previous field code and set disabled to true document.getElementById(ID).disabled=false document.getElementById(ID).focus(); }
//开始正文代码
<form name="theform"><table><tr><td><span style="padding:5px;border:1px solid black;" onclick="edit('myId1');"><input onclick="edit();" disabled id="myId1" type="text"" value="Value One" /></span></td></tr></form>
//最终正文代码
答案 4 :(得分:0)
我一直用......
的document.getElementById(ID).disabled = “禁用”
...和...
的document.getElementById(ID).disabled = “”
...而不是真/假。你试过了吗?