首页 > 解决方案 > Javascript程序取消选中复选框

问题描述

我在 vb.net 中有一个复选框列表和一个单选按钮控件,带有是和否响应。When the No response is selected, I'm trying to get the one checked box in the checkbox list to uncheck itself. 我能够获得位于“其他”复选框旁边的“其他类型”的文本框,以删除文本框中的内容。但是,“其他”复选框或任何其他复选框不会在被禁用的同时被取消选中。这是我目前拥有的代码。我尝试使用行 checkboxes[i].checked=false; 取消选中该框,但我得到的错误是无法设置未定义的选中属性。我不明白 checkboxes[i] 在上一行认为没问题并禁用它时如何未定义。我怎样才能让它同时禁用和取消选中任何复选框?

    <script type="text/javascript">
        function Enableboxes1() {
            var rb = document.getElementById("<%= rbbormaraddendum.ClientID %>");
            var radio = rb.getElementsByTagName("input");
            var label = rb.getElementsByTagName("label");
            for (var i = 0; i < radio.length; i++) {
                if (radio[i].checked) {
                    if (radio[i].value == "Yes") {
                        var chkList2 = document.getElementById('<%=checkboxlist1.ClientID %>');
                        var checkboxes = chkList2.getElementsByTagName("input");
                        for (i = 0; i < checkboxes.length; i++)
                            checkboxes[i].disabled = false;
                        var tb = document.getElementById('<%=txtborothermarital.ClientID%>');
                        tb.disabled = false;
                    }
                }
            }

            for (var i = 0; i < radio.length; i++) {
                if (radio[i].checked) {
                    if (radio[i].value == "No") {
                        var chkList2 = document.getElementById('<%=checkboxlist1.ClientID %>');
                        var checkboxes = chkList2.getElementsByTagName("input");
                        for (i = 0; i < checkboxes.length; i++)
                        checkboxes[i].disabled = true;
                        // HERE trying to uncheck box. The line below breaks the code
                        // checkboxes[i].checked=false;
                        var tb = document.getElementById("<%= txtborothermarital.ClientID %>");
                        tb.disabled = true;
                        tb.value = "";
                    }
                }
            }
        }
    </script>
    <asp:RadioButtonList ID="rbbormaraddendum" runat="server" RepeatDirection="Horizontal" onclick="Enableboxes1()">
        <asp:ListItem Value="No">No</asp:ListItem>
        <asp:ListItem Value="Yes">Yes</asp:ListItem>
    </asp:RadioButtonList>
          
 <asp:CheckBoxList ID="checkboxlist1" CellPadding="5" CellSpacing="5" RepeatColumns="1" RepeatDirection="Vertical" RepeatLayout="Flow" TextAlign="Right" runat="server" Enabled="false" onclick="Enableboxes1()">
            
<asp:ListItem onclick="UncheckOthers(this);" Value="CivilUnion">Civil Union</asp:ListItem>
<asp:ListItem onclick="UncheckOthers(this);" Value="DomesticPartnership">Domestic Partnership</asp:ListItem>
 <asp:ListItem onclick="UncheckOthers(this);" Value="RegisteredPartnership">Registered Partnership</asp:ListItem>
<asp:ListItem onclick="UncheckOthers(this);" Value="RegisteredReciprocalBeneficiaryRelationship"> Registered Reciprocal Beneficiary Relationship</asp:ListItem>
 <asp:ListItem onclick="UncheckOthers(this);" Value="Other">Other</asp:ListItem>
                                            </asp:CheckBoxList>

标签: javascript

解决方案


推荐阅读