如何在javascript中设置asp:复选框的可见性

如何在javascript中设置asp:复选框的可见性,javascript,checkbox,Javascript,Checkbox,我有这个asp:复选框在我的网页,在一定条件下,我想隐藏它。我试图通过设置style.display='none'在JavaScript函数中实现这一点。但不知何故,asp:checkbox呈现为两个html控件,输入和标签。输入消失了,但标签仍然存在。那么,如何在JavaScript中正确隐藏asp:复选框呢?以下是我的代码: var checkBox= document.getElementById('ctl00_ContentPlaceHolder1_checkBox'); if (...

我有这个asp:复选框在我的网页,在一定条件下,我想隐藏它。我试图通过设置style.display='none'在JavaScript函数中实现这一点。但不知何故,asp:checkbox呈现为两个html控件,输入和标签。输入消失了,但标签仍然存在。那么,如何在JavaScript中正确隐藏asp:复选框呢?以下是我的代码:

var checkBox= document.getElementById('ctl00_ContentPlaceHolder1_checkBox');
if (...)
{
    checkBox.style.display='none';
}
及跟随

<td>
<asp:CheckBox ID="checkBox" runat="server" Text="Test" onclick="..."/></td>

将被渲染为

<td><span disabled="disabled"><input id="ctl00_ContentPlaceHolder1_checkBox" type="checkbox" name="ctl00$ContentPlaceHolder1$checkBox" disabled="disabled" onclick="...;" /><label for="ctl00_ContentPlaceHolder1_checkBox">Test</label></span></td>
测试

正如MikeSmithDev所说,你也需要隐藏你的标签。在代码中,可以添加以下内容:

var checkBoxLabel = document.querySelectorAll('label[for=ctl00_ContentPlaceHolder1_checkBox]');

if (checkBoxLabel.length > 0) checkBoxLabel[0].style.display='none';
它通过其属性的来定位标签,如果标签存在,则将其隐藏

或者更简单—假设标签始终跟随输入:

if (...)
{
    checkBox.style.display='none';
    checkBox.nextSibling.style.display='none';
}
这将隐藏复选框后面的元素-标签

顺便说一句,如果这适用于您-在服务器端,这是一个单行线

checkBox.Style["display"] = "none"; // will render the control hidden


把标签也藏起来。这是一个单独的元素。。。或者将复选框和标签包装在一个范围内或隐藏它。生成的输出是什么?您正在使用jQuery吗?您能显示当前的函数吗?
checkBox.Visible = false; // will not render control at all