禁用复选框列表中的其他项目无效

时间:2014-02-13 16:38:31

标签: javascript jquery asp.net checkboxlist

我正在尝试使用此代码禁用我的aspcheckbox列表中的其他选项(不是复选框,这是asp.net checkboxlist控件)...

这是jquery

$(document).ready(function () {
    $('#<%=lstExposureValue.ClientID%> input:checkbox').click(function () {

        var currentIdone = 'Unknown';
        var checked = false;
        $('#<%=lstExposureValue.ClientID%> input:checkbox').each(function () {

            var currentId = $(this).next().html();
            if (currentId == currentIdone) {
                if (checked) {
                    $(this).prop('enabled', true);
                    $("#<%=lstExposureValue.ClientID%> input:checkbox:not(:checked)").prop("enabled", true);
                    checked = false;
                    return;
                }
                else {
                    $("#<%=lstExposureValue.ClientID%> input:checkbox:not(:checked)").prop("disabled", true);
                    $("#<%=lstExposureValue.ClientID%> input:checkbox:not(:checked)").prop("checked", false);
                    checked = true;
                }
            }
        });

    });

});

这是asp.net

          <h3>
            One</h3>
         <asp:CheckBoxList ID="lstExposureValue" runat="server">
            <asp:ListItem>Short-term exposure</asp:ListItem>
             <asp:ListItem>Medium-term exposure</asp:ListItem>
             <asp:ListItem>Unknown</asp:ListItem>
          </asp:CheckBoxList>

所以当选择unknown时,必须取消选择和禁用其他3个选项。 如果未选中未知,则应启用所有选项。

现在,无论我选择什么选项,它都会禁用其他选项,当我取消选中相同选项时,它会禁用所有选项,任何人都可以帮助.....

2 个答案:

答案 0 :(得分:0)

$("#<%=lstExposureValue.ClientID%> input:checkbox:not(:checked)").prop("disabled", true);
$("#<%=lstExposureValue.ClientID%> input:checkbox:not(:checked)").prop("checked", false);

您无法更改已禁用元素的状态。先检查一下,然后禁用该元素。

答案 1 :(得分:0)

这是你的表现。

$(document).ready(function () {
    var checked = false;
    $('#<%=lstExposureValue.ClientID%> input:checkbox').click(function () {
        var currentIdone = 'Unknown';
        var currentId = $(this).next().html();
        if (currentId == currentIdone) {

            if (checked) {

                $("#<%=lstExposureValue.ClientID%> input").removeAttr('disabled');
                checked = false;
                return;
            }
            else {
                $("#<%=lstExposureValue.ClientID%> input").attr('checked', false);
                $(this).attr('checked', true);
                $('#<%=lstExposureValue.ClientID%> input:not(:checked)').attr('disabled', 'disabled');
                checked = true;
            }


        }

    });
});

工作