Javascript 使用ASP.NET复选框控件时无法在IE中启用复选框

Javascript 使用ASP.NET复选框控件时无法在IE中启用复选框,javascript,asp.net,servercontrols,Javascript,Asp.net,Servercontrols,我有一个带有两个禁用复选框的HTML表单和带有onclick事件的图像,该事件需要显示弹出窗口并启用复选框: 但它不起作用。弹出窗口将打开,但复选框从未启用 我没有尝试disabled=false而是尝试removeAttribute(“disabled”),但运气不佳。我还放置了窗口。open作为onclick中的最后一条语句,没有任何更改 jQuery还不在这个项目中,所以我不能使用它。我做错了什么 编辑: 当我发布这篇文章时,我没有透露ASP.NET呈现的输入标记。通过测试,我们发现使

我有一个带有两个禁用复选框的HTML表单和带有
onclick
事件的图像,该事件需要显示弹出窗口并启用复选框:


但它不起作用。弹出窗口将打开,但复选框从未启用

我没有尝试
disabled=false
而是尝试
removeAttribute(“disabled”)
,但运气不佳。我还放置了
窗口。open
作为
onclick
中的最后一条语句,没有任何更改

jQuery还不在这个项目中,所以我不能使用它。我做错了什么

编辑:

当我发布这篇文章时,我没有透露ASP.NET呈现的
输入
标记。通过测试,我们发现使用
之间存在差异,这会影响禁用的
属性在IE和FF中的行为

我一直认为最终的输出是相同的,但显然不是,尽管我没有发现差异。如上所示的渲染代码在FF中工作,但在使用CheckBox对象时不在IE中工作,但在使用HtmlInputCheckBox对象时两者都工作

(我还应该指出,
getElementById
调用实际上是对各个元素使用ASP.NET ClientID属性。)


那么,我现在的问题是,为什么会这样?为什么在使用HtmlInputCheckBox对象时,启用/禁用功能在IE和FF中都能工作,而在CheckBox对象中却不能工作?

首先检查您的网络,然后这里有一个链接,这是一个很好的功能供您使用


事实上,您可以选择启用复选框。试试这些

document.formname.chkname.disabled='';

要启用复选框,我通常应用以下两种方法:

inputElement.disabled = false;
inputElement.removeAttribute( 'disabled' );
一些浏览器喜欢DOM节点属性,其他浏览器则希望调整属性

如果这是你所说的你正在做的事情,但不起作用,我向你道歉——我不太清楚你在说什么。

试着这样做:

document.getElementById('chk1').getAttribute("disabled") = false;
试试这个

inputElement.removeAttribute( 'disabled' );
inputElement.closest('span').removeAttribute( 'disabled' );

我刚刚找到了解决办法。这对我有用

var checkBox = document.getElementById('" + chkBox.ClientID + "');
checkBox.removeAttribute('disabled');
checkBox.parentNode.removeAttribute('disabled');

它对我有用@迈克尔-你在用什么浏览器?我几乎可以毫无问题地将你的代码复制/粘贴到IE中……你的代码在Google Chrome.IE8中为我工作。幸运的是(?)这是一个内联网应用程序,在这里我们可以控制浏览器。我只想写下其他人在下面的解决方案中暗示的内容。如果使用
并在服务器上禁用它,则包装它的
也会标记为禁用。IE对此有问题,而FF&Chrome忽略它。您只需执行
checkbox.parentNode.removeAttribute('disabled')认为必须首先启用反讽设置。