我有一组复选框,每组旁边都有一个旋转的h4。
我正在努力使它当我点击h4 alla相关复选框时 - 所有选中 - 除非他们所有人都被检查过,如果是这样则取消选中。
jQuery是我到目前为止最接近的:
jQuery(".sidewaysHeader h4").click(function() {
var now = $(this).attr('id');
$('input:checkbox[name="'+ now +'"]').attr('checked', true );
});
HTML:
<div class="sidewaysHeader"><h4 id="halsa">Hälsa</h4></div>
<input type="checkbox" value="idrott" id="idrott" name="halsa" /><label for="idrott">Idrott</label><br />
<input type="checkbox" value="dans" id="dans" name="halsa" /><label for="dans">Dans</label><br />
<input type="checkbox" value="hemkunskap" id="hemkunskap" name="halsa" /><label for="hemkunskap">Hemkunskap</label><br />
<input type="checkbox" value="mat-och-boende" id="mat-och-boende" name="halsa" /><label for="mat-och-boende">Mat & Boende</label>
答案 0 :(得分:1)
$('.sidewaysHeader h4').click(function() {
var now = $(this).attr('id');
if($('input:checkbox[name="'+ now +'"]:not(:checked)').length >= 1)
$('input:checkbox[name="'+ now +'"]').attr('checked', 'checked');
else
$('input:checkbox[name="'+ now +'"]').removeAttr('checked');
});
这将是什么,查找组内任何未经检查的输入,如果尚未检查任何复选框,则检查所有,否则,我们取消选中所有,因为我们知道它们都已经过检查。
答案 1 :(得分:0)
实际上这是有效的
答案 2 :(得分:0)
我理解你要检查并取消选中点击标题上的所有复选框。如果已经检查了其中任何一个,那么检查它们。你可以这样做
jQuery(".sidewaysHeader h4").click(function() {
var elems = $('input:checkbox[name="'+ $(this).attr('id') +'"]');
elems.attr('checked', elems.filter(':checked').length != elems.length);
});
小提琴示例: http://jsfiddle.net/tuhLG/6/