我有一个 HTML 表单,其中包含两个禁用的复选框和带有 onclick
的图像需要显示弹出窗口并启用复选框的事件:
<input id="chk1" type="checkbox" disabled="disabled" />
<input id="chk2" type="checkbox" disabled="disabled" />
<img src="..." onclick="window.open('...'); document.getElementById('chk1').disabled=false;document.getElementById('chk2').disabled=false" />
除了它不起作用。弹出窗口打开,但复选框从未启用。
而不是 disabled=false
我试过了 removeAttribute("disabled")
没有运气。我还放置了 window.open
作为 onclick
中的最后一条语句没有变化。
jQuery 不在这个项目中(还)所以我不能使用它。我做错了什么?
编辑:
当我发布这篇文章时,我没有透露 input
标签由 ASP.NET 呈现。通过测试,我们发现使用 <asp:CheckBox />
是有区别的。和 <input type="checkbox" runat="server" />
这会影响 disabled
的方式属性在 IE 和 FF 中的行为。
我的印象是最终输出会是一样的,但显然不是,虽然我没能发现差异。当使用 CheckBox 对象时,如上所示呈现的代码在 FF 中有效,但在 IE 中无效,但在使用 HtmlInputCheckBox 对象时在两者中均有效。
(我还应该指出,getElementById
调用实际上是为各个元素使用 ASP.NET ClientID 属性。)
那么,我现在的问题是,为什么会这样?为什么启用/禁用功能在使用 HtmlInputCheckBox 对象而不是 CheckBox 对象时在 IE 和 FF 中都有效?
最佳答案
试试这个,
inputElement.removeAttribute( 'disabled' );
inputElement.closest('span').removeAttribute( 'disabled' );
关于javascript - 使用 ASP.NET CheckBox 控件时无法在 IE 中启用复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6876564/