使用jquery检查/ uncehck checkboxlist

我在网上看到的大多数例子都有一个片段,他们使用2个复选框,一个只用一个复选框(全部),第二个是复选框列表。 在我的情况下,我只有一个复选框列表绑定到数据源,例如我的数据源列表选项是(全部,苹果,橙色,红色,蓝色),我的大部分工作,除非一切都未选中,我检查最后一项,例如蓝色,它检查ALL选项。 所以不能正常工作。 id是列表中“所有”项的ID

   $(document).ready(function () { var id = "#_0"; var checkboxlistid = "#"; $(id).click(function () { $("# input:checkbox").attr('checked', this.checked); }); $(checkboxlistid + " input:checkbox").click(function () { if ($(checkboxlistid).attr('value') != 0) { if ($(id).attr('checked') == true && this.checked == false) { $(id).attr('checked', false); } else { if ($(id).attr('checked') == true && this.checked == true) CheckSelectAll(); } } }); function CheckSelectAll() { var flag = true; $(checkboxlistid + " input:checkbox").each(function () { if ($(checkboxlistid).attr('value') != 0) { if (this.checked == false) { flag = false; } else { if ($(id).attr('checked') == true && this.checked == false) { flag = false; } else { flag = true; } } } }); $(id).attr('checked', flag); } });     

       

尝试此代码作为您的设置检查属性,而不是使用true和false使用选中和”分别..更多你不能有相同的ID为所有复选框.id是唯一的..如果你使用相同的ID为所有复选框然后它赢了什么都不用。 如果是这样,请将其作为类名并使用$(.classname)选择器

 function CheckSelectAll() { var flag = "checked"; $(checkboxlistid + " input:checkbox").each(function () { if ($(checkboxlistid).attr('value') != 0) { if (this.checked == false) { flag = ''; } else { if ($(id).attr('checked') == true && this.checked == false) { flag = ''; } else { flag = "checked"; } } } }); $(id).attr('checked', flag); } });