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 相关文章推荐
js玩一玩WSH吧
Feb 23 Javascript
不要在cookie中使用特殊字符的原因分析
Jul 13 Javascript
表格单元格交错着色实现思路及代码
Apr 01 Javascript
利用js 进行输入框自动匹配字符的小例子
Jun 29 Javascript
Node.js入门教程:在windows和Linux上安装配置Node.js图文教程
Aug 14 Javascript
JavaScript判断浏览器类型的方法
Feb 10 Javascript
javascript如何写热点图
Dec 08 Javascript
JavaScript实现拖拽元素对齐到网格(每次移动固定距离)
Nov 30 Javascript
基于vue cli重构多页面脚手架过程详解
Jan 23 Javascript
vue2.0 element-ui中el-select选择器无法显示选中的内容(解决方法)
Aug 24 Javascript
详解ES6 系列之异步处理实战
Oct 26 Javascript
浅谈Vue 函数式组件的使用技巧
Jun 16 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新手上路(七)
2006/10/09 PHP
php数据访问之查询关键字
2016/05/09 PHP
Javascript模板技术
2007/04/27 Javascript
Javascript 学习书 推荐
2009/06/13 Javascript
jquery.ajax之beforeSend方法使用介绍
2014/12/08 Javascript
node.js中的emitter.emit方法使用说明
2014/12/10 Javascript
详解AngularJS中自定义指令的使用
2015/06/17 Javascript
mvvm双向绑定机制的原理和实现代码(推荐)
2016/06/07 Javascript
JS实现iframe编辑器光标位置插入内容的方法(兼容IE和Firefox)
2016/06/24 Javascript
js通过classname来获取元素的方法
2016/11/24 Javascript
Bootstrap一款超好用的前端框架
2017/09/25 Javascript
vue中如何实现pdf文件预览的方法
2018/07/12 Javascript
ES10 特性的完整指南小结
2019/03/04 Javascript
vue通信方式EventBus的实现代码详解
2019/06/10 Javascript
Vue中消息横向滚动时setInterval清不掉的问题及解决方法
2019/08/23 Javascript
微信小程序实现按字母排列选择城市功能
2019/11/25 Javascript
微信小程序跨页面传递data数据方法解析
2019/12/13 Javascript
js+canvas实现简单扫雷小游戏
2021/01/22 Javascript
three.js中多线程的使用及性能测试详解
2021/01/07 Javascript
Python中垃圾回收和del语句详解
2018/11/15 Python
Python 实现Numpy中找出array中最大值所对应的行和列
2019/11/26 Python
Python文字截图识别OCR工具实例解析
2020/03/05 Python
python爬虫实例之获取动漫截图
2020/05/31 Python
详解pytorch tensor和ndarray转换相关总结
2020/09/03 Python
Python类成员继承重写的实现
2020/09/16 Python
英国知名衬衫品牌美国网站:Charles Tyrwhitt美国
2016/08/28 全球购物
面向对象编程OOP的优点
2013/01/22 面试题
宝信软件JAVA工程师面试经历
2012/08/19 面试题
幼儿师范毕业生自荐信
2013/11/09 职场文书
护理学应聘自荐书范文
2014/02/05 职场文书
商业项目策划方案
2014/06/05 职场文书
2014年工程部工作总结
2014/11/25 职场文书
市场部岗位职责
2015/02/12 职场文书
鲁滨逊漂流记读书笔记
2015/06/26 职场文书
创业计划书之面包店
2019/09/12 职场文书
Nginx开启Brotli压缩算法实现过程详解
2021/03/31 Servers