0

可能是我愚蠢或新手,请给我一个解决方案。我有一个转发器,我通过检查项目数据绑定中的条件从代码中禁用转发器复选框。所以如果所有复选框都被禁用我希望主标题复选框也禁用。

我试过这个但失败了

 $(document).ready(function () {

        if ($('#All input:checkbox').attr('disabled')) {
            $('#SelectAll').attr("disabled", true);
        }
            });

如果 div #ALL 中的所有复选框都被禁用,我希望禁用“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>
4

2 回答 2

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>
于 2013-04-23T11:38:17.030 回答
1

你可以试试:

 $(document).ready(function () {

    if ($('#All input:checkbox:enabled').length <= 0) {
        $('#SelectAll').prop("disabled", true);
    }
 });

编辑

这是禁用所有复选框的小提琴,因此您可以看到主要复选框也被禁用 http://jsfiddle.net/6P3WB/

这里同样的小提琴只启用了一个复选框,所以你可以看到主要的也启用了:) http://jsfiddle.net/6P3WB/1/

于 2013-04-23T10:03:01.963 回答