検索フォームのグループ内のチェックボックスを操作するために、html data-* タグに基づいて機能する jQuery のチャンクがあります。
[すべて] チェック ボックスをクリックすると、残りのすべてのチェック ボックスがオフになります (これはいつでも問題なく機能します)。
ここで、「すべて」が選択されているときに別のオプションをクリックすると、「すべて」の選択が解除されますが、これも意図したとおりに機能します。
ただし、必要に応じて、[すべて] チェックボックスの選択を解除できます。これにより、デフォルトで残りのチェックボックスが選択された状態になり、目的の結果の選択を解除できます。
これまでに他を変更していない場合、これは初めて機能しますが、他のチェックボックスバー「すべて」が選択されている場合、またはすでに「すべて」ボタンをクリックした場合、選択した場合は失敗し、再度選択を解除します.
それが何をしているのかについてのアイデアは大歓迎です(コンソールを使用して何をしていないかを見つけようとしましたが、これまでのところ手がかりはありません)。
以下の例。
html...
<input data-sel-group='group1' id='group1_all'/>
<input data-sel-group='group1' id='group1_1'/>
<input data-sel-group='group1' id='group1_2'/>
/html...
jQuery...
$('input:checkbox').on('click',function(){
var sel = $(this).data('sel-group'),
all = $('#'+sel+'_all'),
chk = all.is(':checked');
if($(this).attr('id')==all.attr('id')){
if(chk){
$('input[data-sel-group="'+sel+'"][id!="'+sel+'_all"]').attr('checked', false);
}else{
$('input[id!="'+sel+'_all"][data-sel-group="'+sel+'"]').attr('checked', true);
}
}else{
all.attr('checked', false);
if($('input[data-sel-group="'+sel+'"]:checked').length<=0){
all.attr('checked', true);
}
}
})