checkboxを一括チェック、チェック外すのtoggle
何が原因かは分からないがcheck状態を反転させるボタンを作ってjQueryでcheckedを操作するだけではうまくtoggleできない。
とても遅そうなセレクタを使うと機能した。
一応attrの変更も残している。僕の知識では原因がわからない、という。
<!-html5環境です。--> <label><input class="chk_output" type="checkbox" name="outputs[]" value="1"> 1</label> <label><input class="chk_output" type="checkbox" name="outputs[]" value="2"> 2</label> <label><input class="chk_output" type="checkbox" name="outputs[]" value="3"> 3</label> <label><input class="chk_output" type="checkbox" name="outputs[]" value="4"> 4</label> <label><input class="chk_output" type="checkbox" name="outputs[]" value="5"> 5</label> <label><input class="chk_output" type="checkbox" name="outputs[]" value="6"> 6</label> <label><input class="chk_output" type="checkbox" name="outputs[]" value="7"> 7</label> <label><input class="chk_output" type="checkbox" name="outputs[]" value="8"> 8</label> <label><input class="chk_output" type="checkbox" name="outputs[]" value="9"> 9</label> <input id="btn_selectalloutput" type="button" value="全て選択">
// 全て選択ボタンでチェックボックスをトグルする。 $("#btn_selectalloutput").click(function(){ var val = $(this).attr("value"); if(val == "全て選択"){ $(".chk_output:not(:checked)").trigger('click'); $(".chk_output").attr("checked","checked"); $(this).attr("value","選択解除"); }else { $(".chk_output:checked").trigger('click'); $(".chk_output").removeAttr('checked'); $(this).attr("value","全て選択"); } });
うごいたけど納得行かない。なんでなんだろ?なんでなんだろ?
わからない。。。