1

我的代码有问题,我可以使用后面的代码来实现它,但它并不好,因为我有滑动面板(使用 jQuery),它在回发时受到干扰。

CheckBoxList 默认禁用,没有自动回发。

如果选中 CheckBox,我希望 CheckBoxList 变为启用状态。

目前,我有这个代码:

$("#BizAppsCheckBox").click(function () {
        if (this.checked)
            $('#BizAppsCheckBoxList').removeAttr('disabled');
        else
            $('#BizAppsCheckBoxList').attr('disabled', 'disabled');
    });

我该如何解决这个问题?

对我来说最好的工作解决方案,感谢答案:

$(document).ready(function () {    
if ($("#BizAppsCheckBox").prop('checked') == false) {
                $('#BizAppsCheckBoxList *').prop('disabled', true);
            }
            else {
                $('#BizAppsCheckBoxList *').prop('disabled', false);
            }

$("#BizAppsCheckBox").click(function () {
                if (this.checked)
                    $('#BizAppsCheckBoxList *').prop('disabled', false);
                else
                    $('#BizAppsCheckBoxList *').prop('disabled', true) &
                $('#BizAppsCheckBoxList *').prop('checked', false);
            });
});
4

3 回答 3

2

试试这个 :

您应该使用 ClientID 因为 asp.net 确实提供了不同的 ID(在容器下时)

$("#<%=BizAppsCheckBox.ClientID%> ").click(function () {
                if (this.checked)
                    $('#<%=BizAppsCheckBoxList.ClientID%>').prop('disabled',false);
                else
                    $('#<%=BizAppsCheckBoxList.ClientID%>').prop('disabled', true);
            });

编辑

 $("#<%=BizAppsCheckBox.ClientID%>").click(function () {
                if (this.checked)
                    $('#<%=BizAppsCheckBoxList.ClientID%> *').prop('disabled', false);
                else
                    $('#<%=BizAppsCheckBoxList.ClientID%> *').prop('disabled', true);
            });
于 2013-08-20T14:33:05.683 回答
1

使用prop而不是attr,如果ClientIDMode不是静态的,则使用ClientID服务器控件

$("#<%= BizAppsCheckBox.ClientID %>").click(function () {
      if (this.checked)
           $('#<%= BizAppsCheckBoxList.ClientID %>').prop('disabled', true);
      else
           $('#<%= BizAppsCheckBoxList.ClientID %>').prop('disabled', false);
});
于 2013-08-20T14:33:41.293 回答
1

这会成功的

$("#<%=BizAppsCheckBox.ClientID%>").click(function () {       
       $('#<%=BizAppsCheckBoxList.ClientID%>').prop('disabled',!this.checked);
});

或者

$("#BizAppsCheckBox").click(function () {
         $('#BizAppsCheckBoxList').prop('disabled', !this.checked);
});

尝试使用.on()

$("document").on("click","#<%=BizAppsCheckBox.ClientID%>",function(){
         $('#<%=BizAppsCheckBoxList.ClientID%>').prop('disabled',!this.checked);
});
于 2013-08-20T14:34:02.450 回答