FireFox处理禁用的字段

时间:2009-11-10 20:33:01

标签: javascript html firefox

我有一个带有选择列表和单选按钮的HTML表单,这两个表单最初都设置为disabled = true。在某些时候,这些元素是通过JavaScript启用的(即,disabled = false)。这在IE和Chrome中运行良好,但在FireFox中,该元素仍然处于禁用状态。它似乎已启用,但不响应鼠标点击。当我使用FireBug检查其中一个元素时,disabled属性为false。在处理最初禁用的表单元素时,FireFox是否存在已知问题,然后启用?

感谢。

5 个答案:

答案 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 = “”

...而不是真/假。你试过了吗?