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技术实现Tab页界面之二
Sep 21 Javascript
js与jquery中获取当前鼠标的x、y坐标位置的代码
May 23 Javascript
jquery parent和parents的区别分析
Oct 02 Javascript
用jquery写的菜单从左往右滑动出现
Apr 11 Javascript
JQuery validate插件验证用户注册信息
May 11 Javascript
JavaScript性能优化之函数节流(throttle)与函数去抖(debounce)
Aug 11 Javascript
常用js,css文件统一加载方法(推荐) 并在加载之后调用回调函数
Sep 23 Javascript
jQuery学习之DOM节点的插入方法总结
Jan 22 Javascript
[js高手之路]图解javascript的原型(prototype)对象,原型链实例
Aug 28 Javascript
解决Vue2.0中使用less给元素添加背景图片出现的问题
Sep 03 Javascript
深入理解react 组件类型及使用场景
Mar 07 Javascript
vue webpack build资源相对路径的问题及解决方法
Jun 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
用在PHP里的JS打印函数
2006/10/09 PHP
PHP脚本的10个技巧(3)
2006/10/09 PHP
PHP 页面跳转到另一个页面的多种方法方法总结
2009/07/07 PHP
php 过滤器实现代码
2010/08/09 PHP
PHP包含文件函数include、include_once、require、require_once区别总结
2014/04/05 PHP
php实现Session存储到Redis
2015/11/11 PHP
Yii2 中实现单点登录的方法
2018/03/09 PHP
laravel5.6框架操作数据curd写法(查询构建器)实例分析
2020/01/26 PHP
6个常见的 PHP 安全性攻击实例和阻止方法
2020/12/16 PHP
同时使用n个window onload加载实例介绍
2013/04/25 Javascript
在JavaScript中访问字符串的子串
2015/07/07 Javascript
javascript实现连续赋值
2015/08/10 Javascript
学习JavaScript设计模式之装饰者模式
2016/01/19 Javascript
js图片上传前预览功能(兼容所有浏览器)
2016/08/24 Javascript
AngularJs篇:使用AngularJs打造一个简易权限系统的实现代码
2016/12/26 Javascript
vue-router跳转页面的方法
2017/02/09 Javascript
JavaScript运动框架 多物体任意值运动(三)
2017/05/17 Javascript
使用原生JS实现火锅点餐小程序(面向对象思想)
2019/12/10 Javascript
[04:22]DOTA2上海特级锦标赛主赛事第四日TOP10
2016/03/06 DOTA
跟老齐学Python之Import 模块
2014/10/13 Python
简单实现python爬虫功能
2015/12/31 Python
python下如何查询CS反恐精英的服务器信息
2017/01/17 Python
pandas创建新Dataframe并添加多行的实例
2018/04/08 Python
python如何求解两数的最大公约数
2018/09/27 Python
详解pandas使用drop_duplicates去除DataFrame重复项参数
2019/08/01 Python
Pycharm中出现ImportError:DLL load failed:找不到指定模块的解决方法
2019/09/17 Python
python @propert装饰器使用方法原理解析
2019/12/25 Python
python多线程实现代码(模拟银行服务操作流程)
2020/01/13 Python
基于Python测试程序是否有错误
2020/05/16 Python
Django haystack实现全文搜索代码示例
2020/11/28 Python
购买中国最好的电子产品:Geekbuying
2018/03/13 全球购物
如果让你测试一台高速激光打印机,你都会进行哪些测试
2012/12/04 面试题
中文师范生自荐信
2014/01/30 职场文书
人事部岗位职责范本
2014/03/05 职场文书
4s店活动策划方案
2014/08/25 职场文书
2016年“9.22”世界无车日活动小结
2016/04/05 职场文书