可能是我是愚蠢的还是刚接触到这个请给我一个解决方案。我有一个转发器,我通过检查项目数据中的条件禁用后面的代码中的转发器复选框。所以如果所有的复选框禁用我希望主标题复选框也被禁用。
我试过了但是失败了
$(document).ready(function () {
if ($('#All input:checkbox').attr('disabled')) {
$('#SelectAll').attr("disabled", true);
}
});
如果div中的所有复选框都已禁用,我想要禁用“SelectAll”复选框
<asp:Repeater ID="AutoPublishList" runat="server" EnableViewState="true">
<HeaderTemplate>
<td id="RemoveHead" runat="server">
<input type="checkbox" id="SelectAll" runat="server" clientidmode="Static" />
</td>
<td class="sortableHeaderSmall" onclick=" Sort('ProductName');">
Manager/Product
</td>
<td class="sortableHeaderSmall" onclick="Sort('PageID');">
Page
</td>
<td class="sortableHeaderSmall" onclick="Sort('IsPreliminary');">
Prelim
</td>
<td class="sortableHeaderSmall" onclick="Sort('LastSaved');">
Last Updated
</td>
<td class="sortableHeaderSmall" onclick="Sort('PublishDate');">
Time Published
</td>
<td class="sortableHeaderSmall" onclick="Sort('ErrorDisplay');">
Errors
</td>
<td class="sortableHeaderSmall" onclick="Sort('Comment');">
Comments
</td>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td id="RemoveCell" runat="server" style="" class="sortableBodySmall">
<div id="All">
<input type="checkbox" id="SelectRow" runat="server" value=' <%#DataBinder.Eval(Container, "DataItem.ProductID")%>' />
<asp:HiddenField runat="server" ID="pageIDHidden" Value='<%#DataBinder.Eval(Container, "DataItem.PageID")%>' />
<asp:HiddenField runat="server" ID="FirmID" Value='<%#DataBinder.Eval(Container, "DataItem.FirmID")%>' />
</div>
</td>
<td class="sortableBodySmall" align="left">
<a class="primaAnchor" href='<%# String.Format("/pg/imq/mf/index.aspx?fid={0}&pid={1}", Eval("FirmID"),Eval("ProductID")) %>'
target="_blank">
<asp:Literal EnableViewState="False" ID="ProductName" runat="server" Text='<%#DataBinder.Eval(Container, "DataItem.ProductName")%>' />
</a>
</td>
<td class="sortableBodySmall" align="left">
<a class="primaAnchor" href='<%# String.Format("/pg/imq/imqpage{0}.aspx?fid={1}&pid={2}",Eval("PageID"), Eval("FirmID"),Eval("ProductID")) %>'
target="_blank">
<asp:Literal EnableViewState="False" ID="PageName" runat="server" Text='<%# DataBinder.Eval(Container.DataItem,"PageName")%>' /></a>
</td>
<td class="sortableBodySmall" align="center">
<asp:Literal EnableViewState="False" ID="IsPreliminary" runat="server" Text=' <%# IIf(DataBinder.Eval(Container.DataItem, "IsPreliminary") = True, "P", "")%> ' />
</td>
<td class="sortableBodySmall" align="right" style="width: 105px">
<asp:Literal EnableViewState="False" ID="LastSaved" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "LastSaved")%>' />
</td>
<td class="sortableBodySmall" align="right" style="width: 105px">
<asp:Literal EnableViewState="False" ID="PublishDate" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "PublishDate")%>' />
</td>
<td class="sortableBodySmall" align="left" style="width: 105px">
<asp:Literal EnableViewState="False" ID="ErrorDisplay" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "ErrorDisplay")%>' />
</td>
<td class="sortableBodySmall" align="left">
<asp:Literal EnableViewState="False" ID="Comment" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Comment")%>' />
</td>
</tr>
</ItemTemplate>
答案 0 :(得分:2)
你可以试试这个,我举个例子,根据你的情况调整你的代码
<div id="test">
<input type="checkbox" id="chkAll" />
<input type="checkbox" class="chk" disabled="disabled" /> 1
<input type="checkbox" class="chk" disabled="disabled" /> 2
<input type="checkbox" class="chk" disabled="disabled" /> 3
</div>
<script type="text/javascript">
$(document).ready(function () {
if ($('#test input.chk:disabled').length == $('#test input.chk').length) {
$('#chkAll').attr('disabled', 'disabled');
}
});
</script>
答案 1 :(得分:1)
您可以尝试:
$(document).ready(function () {
if ($('#All input:checkbox:enabled').length <= 0) {
$('#SelectAll').prop("disabled", true);
}
});
修改强>
这是禁用所有复选框的小提琴,因此您可以看到主要的复选框也被禁用 http://jsfiddle.net/6P3WB/
这里只有一个复选框启用了相同的小提琴,所以你可以看到主要的一个也启用:) http://jsfiddle.net/6P3WB/1/