迭代asp.net复选框,如果选中任何一个,则取消选中ID =“All”的复选框

时间:2013-05-15 06:46:16

标签: jquery asp.net

HTML

 <div>
    <asp:CheckBox ID="All" runat="server" Checked="true" Text="ALL" ForeColor="Black" /><br />
    <asp:CheckBox ID="CheckBox2" runat="server" Text="Accepted" ForeColor="Black" CssClass="chkdisplay" /><br />
    <asp:CheckBox ID="CheckBox3" runat="server" Text="Contacted" ForeColor="Black" CssClass="chkdisplay"  /><br />
    <asp:CheckBox ID="CheckBox4" runat="server" Text="Pending" ForeColor="Black" CssClass="chkdisplay" /><br />
    <asp:CheckBox ID="CheckBox5" runat="server" Text="Pre-Authorized" ForeColor="Black" CssClass="chkdisplay" /><br />
    <asp:CheckBox ID="CheckBox6" runat="server" Text="Show Deleted" ForeColor="Black" CssClass="chkdisplay" /><br />
    <asp:CheckBox ID="CheckBox7" runat="server" Text="Treated" ForeColor="Black" CssClass="chkdisplay" />
</div>

我试过的脚本(它不起作用)。我使用asp.net checkbokcssclass进行迭代我认为cssclass does not work就像class selector

$(document).ready(function () {
    $('.chkdisplay').each(function () {
        if ($(this).is(':checked')) {
            $('#All').attr('checked', false);
        }
    });
});

我有什么办法只使用asp.net复选框。当我选择任何checkbok between 2 to 7我想要取消选中ID="All"的checkbok时 谢谢你

4 个答案:

答案 0 :(得分:2)

我认为你可以使用^的属性选择器来获取以指定字符串开头的所有元素。

$('[id^="CheckBox"]').each(function () {

答案 1 :(得分:2)

注意:CssClass不适用于input元素,而是适用于包装输入元素的span。您应该迭代.chkdisplay元素的每个第一个孩子(另请参阅here)。

类似的东西:

$('.chkdisplay > input').each(function () {
    if (this.checked) {
        $('#All').prop('checked', false);
        return false;
    }
});

答案 2 :(得分:0)

为“全部”复选框命名,如:

<asp:CheckBox name="ChkTest" ID="All" runat="server" Checked="true" Text="ALL" ForeColor="Black" />

而不是$('#All').attr('checked', false);

试试这个:

$('#<%= ChkTest.ClientID %>').attr('checked', false);

答案 3 :(得分:0)

我已经完成了正确的答案,请参阅此处http://jsfiddle.net/hZFFr/3/

$('.chkdisplay').on('change blur', function () {;
    $('#All').attr('checked', !($('.chkdisplay').not(':checked').length));

})