jquery实现checkbox 全选/全不选的通用写法


Posted in Javascript onFebruary 22, 2014
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
    <script type="text/javascript">
        //name 是html表单专用于区别各组 chechbox 的属性, 不要用id(必须唯一)或者其它属性
        function getValues() {
            var aV = getCheckboxValues("a");
            var bV = getCheckboxValues("b");
            var cV = getCheckboxValues("c");
            var result = "a组选中值: " + (aV=="" ? "未选中任何值" : aV) + "\n" +
                "b组选中值: " + (bV == "" ? "未选中任何值" : bV) + "\n" +
                "c组选中值: " + (cV == "" ? "未选中任何值" : cV);
            alert(result);
        }
        function getCheckboxValues(name) {
            return $(":checkbox[name="+name+"]:checked").map(function(){  
                return $(this).val(); 
            }).get().join(",");
        }
        function chkAll(obj) {
            var name = $(obj).attr("name");
            //也许你觉得我写得太复杂, 但jquery 版本众多, 可以学点东西总是好的
            //1. jquery 1.6 以上
            //$(":checkbox[name=" + name.substring(0, 1) + "]").prop("checked", $(obj).prop("checked"));
            //2. jquery 1.6 以下
            //$(":checkbox[name=" + name.substring(0, 1) + "]").attr("checked", $(obj).attr("checked"));
            //3. 通用写法
            $(":checkbox[name=" + name.substring(0, 1) + "]").each(function () {
                this.checked = obj.checked;
            });
        }
    </script>
</head>
<body>
    <div >
        <span>第1组(a):<input type="checkbox" name="aAll" onclick="chkAll(this)" />全选/全不选</span>
        <input type="checkbox" name="a" value="a1" checked="checked" />a1
        <input type="checkbox" name="a" value="a2" checked="checked"  />a2
        <input type="checkbox" name="a" value="a3" />a3
        <input type="checkbox" name="a" value="a4" />a4<br />
        <span>第2组(b):<input type="checkbox" name="bAll" onclick="chkAll(this)" />全选/全不选</span>
        <input type="checkbox" name="b" value="b1" />b1
        <input type="checkbox" name="b" value="b2" checked="checked" />b2
        <input type="checkbox" name="b" value="b3" checked="checked"  />b3
        <input type="checkbox" name="b" value="b4" />b4<br />
        <span>第3组(c):<input type="checkbox" name="cAll" onclick="chkAll(this)" />全选/全不选</span>
        <input type="checkbox" name="c" value="c1" />c1
        <input type="checkbox" name="c" value="c2" />c2
        <input type="checkbox" name="c" value="c3" checked="checked" />c3
        <input type="checkbox" name="c" value="c4" checked="checked"  />c4<br />
        <br />
        <input type="button" value="查找每组的选中的值" onclick="getValues()" />
    </div>
</body>
</html>
Javascript 相关文章推荐
Jquery动态进行图片缩略的原理及实现
Aug 13 Javascript
在页面中js获取光标/鼠标的坐标及光标的像素坐标
Nov 11 Javascript
JavaScript中使用Math.PI圆周率属性的方法
Jun 14 Javascript
JavaScript使表单中的内容显示在屏幕上的方法
Jun 29 Javascript
利用jQuery的动画函数animate实现豌豆发射效果
Aug 28 Javascript
浅谈javascript中的数据类型转换
Dec 27 Javascript
在bootstrap中实现轮播图实例代码
Jun 11 Javascript
extjs简介_动力节点Java学院整理
Jul 17 Javascript
Vue中 key keep-alive的实现原理
Sep 18 Javascript
浅谈vue项目打包优化策略
Sep 29 Javascript
解决Vue开发中对话框被遮罩层挡住的问题
Nov 26 Javascript
vue 解决addRoutes多次添加路由重复的操作
Aug 04 Javascript
防止jQuery ajax Load使用缓存的方法小结
Feb 22 #Javascript
jquery中load方法的用法及注意事项说明
Feb 22 #Javascript
页面加载完成后再执行JS的jquery写法以及区别说明
Feb 22 #Javascript
解决用jquery load加载页面到div时,不执行页面js的问题
Feb 22 #Javascript
文本框水印提示效果的简单实现代码
Feb 22 #Javascript
jquery实现省市select下拉框的替换(示例代码)
Feb 22 #Javascript
jQuery实现下拉框左右选择的简单实例
Feb 22 #Javascript
You might like
海贼王动画变成“真人”后,凯多神还原,雷利太帅了!
2020/04/09 日漫
php上传图片存入数据库示例分享
2014/03/11 PHP
PHP在线打包下载功能示例
2016/10/15 PHP
php7 安装yar 生成docker镜像
2017/05/09 PHP
PHP设计模式概论【概念、分类、原则等】
2020/05/01 PHP
理解Javascript_09_Function与Object
2010/10/16 Javascript
js字符串的各种格式的转换 ToString,Format
2011/08/08 Javascript
JavaScript ECMA-262-3 深入解析.第三章.this
2011/09/28 Javascript
jquery利用event.which方法获取键盘输入值的代码
2011/10/09 Javascript
jquery利用ajax调用后台方法实例
2013/08/23 Javascript
调试代码导致IE出错的避免方法
2014/04/04 Javascript
js验证IP及子网掩码的合法性有效性示例
2014/04/30 Javascript
JavaScript中实现无缝滚动、分享到侧边栏实例代码
2016/04/06 Javascript
JS跨域请求外部服务器的资源
2017/02/06 Javascript
使用vux实现上拉刷新功能遇到的坑
2018/02/08 Javascript
解决vue中修改export default中脚本报一大堆错的问题
2018/08/27 Javascript
vue新建项目并配置标准路由过程解析
2019/12/09 Javascript
js动态生成表格(节点操作)
2021/01/12 Javascript
JavaScript实现前端倒计时效果
2021/02/09 Javascript
[01:02:25]2014 DOTA2华西杯精英邀请赛5 24 NewBee VS VG
2014/05/25 DOTA
基于Python中capitalize()与title()的区别详解
2017/12/09 Python
python爬虫 基于requests模块发起ajax的get请求实现解析
2019/08/20 Python
pytorch获取vgg16-feature层输出的例子
2019/08/20 Python
Python根据服务获取端口号的方法
2019/09/25 Python
Python高级property属性用法实例分析
2019/11/19 Python
PyCharm永久激活方式(推荐)
2020/09/22 Python
opencv 查找连通区域 最大面积实例
2020/06/04 Python
一文读懂python Scrapy爬虫框架
2021/02/24 Python
非常详细的C#面试题集
2016/07/13 面试题
linux面试题参考答案(5)
2016/11/05 面试题
歌唱比赛获奖感言
2014/01/21 职场文书
网络研修随笔感言
2014/02/17 职场文书
公司离职证明样本
2014/09/13 职场文书
2014办公室副主任四风对照检查材料思想汇报
2014/09/20 职场文书
2015暑期社会实践个人总结
2015/07/13 职场文书
Windows Server 2016服务器用户管理及远程授权图文教程
2022/08/14 Servers