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

标签 javascript asp.net servercontrols

我有一个 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/

相关文章:

php - 如何从 PHP 脚本调用 ASP.NET .dll 文件?

asp.net - 在 asp.net 中保存 Unicode 字符

c# - 使用 WKHTMLTOPDF 以 HTML 格式显示图像,但不以 PDF 格式显示图像

javascript - 无法写入 asp.net 中的脚本标记

javascript - 如何在 Javascript 中制作每个句子

javascript - 如何修复 angular.forEach 中对象的重复?

Javascript 在文本区域中两次输入未被 (/[\n\r]/gm) 检测到

javascript - 评估的 jquery 动态变量

c# - 使用 RequiredFieldValidator 验证服务器控件中的文本框

ASP.NET(网络表单): Using with MINIMAL server controls and substituting with JQUERY?