首先准备jsp页面控件:
请选择您的爱好:<br>
<input type="checkbox" id="all" name="selectAll"value="全选"/>全选<br>
<input type="checkbox" name="hobby"value="足球"/>足球
<input type="checkbox" name="hobby"value="蓝球"/>篮球
<input type="checkbox" name="hobby"value="乒乓球"/>乒乓球
<input type="checkbox" name="hobby"value="羽毛球"/>羽毛球<br/>
<input type="button" id="checkAll" value="全选">
<input type="button" id="reverse" value="反选">
<input type="button" id="disAll" value="全不选">
效果:
用jquery实现以上功能,其中复选框可以全选/全不选,任意一项取消,复选框也会取消,直接上代码
<script type="text/javascript" src="js/jquery-1.8.3.js"></script>
<script type="text/javascript">
$(function(){
/* 全选按钮 */
$("#checkAll").click(function(){
$("input[name='hobby']").each(function(){
$(this).attr('checked','checked');
});
});
/* 全不选 */
$("#disAll").click(function(){
$("input[name='hobby']").each(function(){
$(this).attr('checked',false);
}); });
/* 反选 */
$("#reverse").click(function(){
$("input[name='hobby']").each(function(){
$(this).attr('checked',!$(this).attr("checked"))
});
});
/* 全选 (复选框的全选)/全不选*/
$("#all").click(function(){
$("[name=hobby]:checkbox").each(function() {
this.checked=$("#all")[0].checked;
});
}); /* 全选(复选框),单个不选后状态设为false */
$("[name='hobby']").each(function () {
$(this).click(function () {
if ($("[name='hobby']:checked").length == $("[name='hobby']").length) {
$("#all").attr("checked", "checked");
}
else $("#all").removeAttr("checked");
});
});
});
</script>
值得一提的是复选框的全选全不选,采用js对象和jquery对象相互转化的思想,使得运算最简化。