我有一个表单和一组复选框。(这些复选框是动态创建的,但对于这个问题,我认为这并不重要)。生成它们的代码如下所示(表单的一部分):
<div id="ScrollCB"> <input type="checkbox" name="ALL" value="checked" checked="checked"> All (if nothing selected, this is default) <br> <c:forEach items="${serviceList}" var="service"> <input type="checkbox" name="${service}" value="checked"> ${service} <br> </c:forEach> </div>
我要做的是控制,是否选中了标记为“所有”的复选框,如果是,请选中所有其他复选框(如果未选中,请全部取消选中)。
我试图用这样的javascript来做到这一点(找到了一些教程),但是它不起作用(而javascript中的Im真正的新手,也就不足为奇了):
<script type="text/javascript"> $ui.find('#ScrollCB').find('label[for="ALL"]').prev().bind('click',function(){ $(this).parent().siblings().find(':checkbox').attr('checked',this.checked).attr('disabled',this.checked); }); }); </script>
您能告诉我一些简单的方法如何使其工作吗?非常感谢!
演示
Updated_demo
HTML:
<label><input type="checkbox" name="sample" class="selectall"/> Select all</label> <div id="checkboxlist"> <label><input type="checkbox" name="sample[]"/>checkbox1</label><br /> <label><input type="checkbox" name="sample[]"/>checkbox2</label><br /> <label><input type="checkbox" name="sample[]"/>checkbox3</label><br /> <label><input type="checkbox" name="sample[]"/>checkbox4</label><br /> </div>
JS:
$('.selectall').click(function() { if ($(this).is(':checked')) { $('div input').attr('checked', true); } else { $('div input').attr('checked', false); } });