0

私の Asp.net チェックボックス

<asp:CheckBox ID="All" runat="server" Checked="true" Text="ALL" ForeColor="Black" /><br />
<asp:CheckBox ID="otherCheckBox2" runat="server" Checked="false" Text="Accepted" ForeColor="Black" CssClass="chkdisplay" /><br />
<asp:CheckBox ID="otherCheckBox3" runat="server" Checked="false"  Text="Contacted" ForeColor="Black" CssClass="chkdisplay"  /><br />
<asp:CheckBox ID="otherCheckBox4" runat="server" Checked="false" Text="Pending" ForeColor="Black" CssClass="chkdisplay" /><br />
<asp:CheckBox ID="otherCheckBox5" runat="server" Checked="false" Text="Pre-Authorized" ForeColor="Black" CssClass="chkdisplay" /><br />
<asp:CheckBox ID="otherCheckBox6" runat="server" Checked="false" Text="Show Deleted" ForeColor="Black" CssClass="chkdisplay" /><br />
<asp:CheckBox ID="otherCheckBox7" runat="server" Checked="false" Text="Treated" ForeColor="Black" CssClass="chkdisplay" />

試したスクリプト

 $(document).ready(function () {
            $('[id^="otherCheckBox"]').each(function () {
                if ($(this.checked)) {
                    $('#<%= All.ClientID %>').attr('checked', false);
                }
            });
        });

asp チェックボックスを繰り返したいのですが、2 t0 7 のチェックボックスがチェックされている場合は、id="All" でチェックを外します。
すべてのスタックフローの専門家に、長い間回答を待っている回答を提案してください。前もって感謝します

4

2 に答える 2

2

それぞれを完全に削除しないのはなぜですか:

$('#<%= All.ClientID %>').prop('checked', !($('[id^="otherCheckBox"]').not(':checked').length));

または固定IDの場合:

$('#All').prop('checked', !($('[id^="otherCheckBox"]').not(':checked').length));
// class example of this same thing replaces the id prefix selector
$('#All').prop('checked', !($('.chkdisplay').not(':checked').length));

余分な編集: ALL/group に基づいてトグルが必要になるのではないかと思います: これを使用するか、役に立たない場合は無視してください。

//if any is checked/changed reset All to reflect
$('[id^="otherCheckBox"]').on('change blur', function () {
    $('#All').prop('checked', !($('[id^="otherCheckBox"]').not(':checked').length));
});
// if All is changed, reflect the All setting (check/uncheck the group)
$('#All').on('change blur', function () {
    $('[id^="otherCheckBox"]').prop('checked', $(this).prop('checked'));
});
// set initial all state
$('[id^="otherCheckBox"]').eq(0).blur();

関数の最後の部分を示すフィドル: http://jsfiddle.net/hZFFr/1/

于 2013-05-28T13:18:18.280 に答える
1

あなたのコードは合理的に見えます。いくつかの指針:

  • あなたがそれを使用している方法でラップする必要はありませthis.checked$()
  • を使用するAll.ClientIDと、HTML チェックボックスの ID が ASP.NET チェックボックスの ID と正確に一致しない場合があります。$('.chkdisplay')またはその他の方法を使用して、関心のあるチェックボックスにアクセスすることを検討してください。
  • 投稿したコードは DOMReady でのみ実行されます。また、任意の場所で実行することもできます$('.chkdisplay').change
  • jQuery 1.6 以降を実行している場合.prop('checked', false)は、.attr
于 2013-05-28T11:23:00.323 に答える