为什么不会在ASP.NET中使用javascript“checkbox.disable”灰色关联标签?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了为什么不会在ASP.NET中使用javascript“checkbox.disable”灰色关联标签?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1391字,纯文字阅读大概需要2分钟。
内容图文
![为什么不会在ASP.NET中使用javascript“checkbox.disable”灰色关联标签?](/upload/InfoBanner/zyjiaocheng/731/2af0d0f9ab2745ab809154d85d6fee9e.jpg)
我正在使用一些JavaScript来禁用复选框列表中的复选框,如下所示:
var objItem = document.getElementById("<%= resCBL.ClientID %>");
var checkBoxes = objItem.getElementsByTagName("input");
if (form1.secTB.value == 0) {
checkBoxes[0].disabled = true;
此代码工作正常,但当页面在IE中呈现时,复选框的文本属性将呈现为标签,因此只有复选框似乎灰显,而不是复选框和文本.
如果我只是设置
Enabled = false
在.aspx代码隐藏中,它会使所有内容变灰,但却无法(使用我当前的方法)重新启用CB并取消灰色标签.
谁能告诉我如何解决这个问题并帮助我理解为什么会这样做?
解决方法:
如果您查看复选框控件的HTML输出,您会看到有一个关联的< label for =“checkbox_client_id”> Text< / label> – 这就是为什么将复选框设置为禁用不会使文本变灰.
从IE查看页面时,ASP.NET包装了< input>和相关的< label>与< span disabled =“disabled”>. IE将禁用跨度内的所有元素,这就是禁用复选框和标签的原因.
但是,由于span不是表单元素,因此大多数其他浏览器都遵循W3C rules并忽略“disabled”属性.禁用复选框周围的范围仅适用于IE.
我能想到的最简单的解决方案是手动复制此行为.用一个范围包装复选框然后,当启用/禁用复选框时,使用CSS来设置范围的样式并获得所需的效果以适用于所有浏览器.
var objItem = document.getElementById("<%= resCBL.ClientID %>");
var checkBoxes = objItem.getElementsByTagName("input");
if (form1.secTB.value == 0) {
checkBoxes[0].disabled = true;
checkBoxes[0].parentNode.class = "disabled";
}
附:对不起,如果我听起来很讽刺 – IE总是让我感到烦恼,因为它是无穷无尽的“错综复杂”
内容总结
以上是互联网集市为您收集整理的为什么不会在ASP.NET中使用javascript“checkbox.disable”灰色关联标签?全部内容,希望文章能够帮你解决为什么不会在ASP.NET中使用javascript“checkbox.disable”灰色关联标签?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。