CheckBoxListのチェックボックスがクライアント側でチェックされていない(繰り返しチェックされていない)かどうかを識別する必要があります。これにより、上部の[すべて選択]オプションをJQueryを使用してオン/オフに変更できます。
他の操作(すべてをチェック/オフにし、[すべて選択]チェックをオフにするオプションをオフにする)はすべて正常に機能しますが、[すべて選択]に他のすべてのチェックボックスの状態を反映させると便利です。
var cbs = $('#myCheckBoxList :checkbox')
選択された==falseのチェックボックスを見つけるために、すでに何を適用する必要があると仮定しますか?
私が見つけたすべての例は、単一のチェックボックスのチェックされた状態を見つけることに関するものですが、チェックされていないものがあるかどうかを知る必要があります。
などを試しましたが、属性のみによるフィルタリングcbs.find(':[checked="false"]')
の良い例を見つけることができませんでした。find()
私が書いていたselect-allトグル動作の完全なコード
(以下のChanduの回答から導き出された最終的な解決策を含む):
$(window).load(function () {
var cbs = $('.myCheckBoxList :checkbox');
cbs.eq(0).click(function () {
var toggle = this.checked;
cbs.attr('checked', toggle);
});
cbs.slice(1).click(function () {
if (!this.checked) {
cbs.eq(0).attr('checked', false);
} else {
cbs.eq(0).attr('checked', cbs.slice(1).filter(':not(:checked)').length == 0);
}
});
});