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 相关文章推荐
javascript document.execCommand() 常用解析
Dec 14 Javascript
基于jQuery的合并表格中相同文本的相邻单元格的代码
Apr 06 Javascript
关闭浏览器时提示onbeforeunload事件
Dec 25 Javascript
javascript结合CSS实现苹果开关按钮特效
Apr 07 Javascript
JSON+Jquery省市区三级联动
Jan 13 Javascript
JS实现数字格式千分位相互转换方法
Aug 01 Javascript
纯JavaScript手写图片轮播代码
Oct 20 Javascript
vue.js实例todoList项目
Jul 07 Javascript
js轮播图的插件化封装详解
Jul 17 Javascript
js中apply与call简单用法详解
Nov 06 Javascript
vue复合组件实现注册表单功能
Nov 06 Javascript
在weex中愉快的使用scss的方法步骤
Jan 02 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使用JpGraph绘制折线图操作示例【附源码下载】
2019/10/18 PHP
Javascript &amp; DHTML 实例编程(教程)DOM基础和基本API
2007/06/02 Javascript
JavaScript 读取元素的CSS信息的代码
2010/02/07 Javascript
js模仿hover的具体实现代码
2013/12/30 Javascript
关于js数组去重的问题小结
2014/01/24 Javascript
详解Node.js包的工程目录与NPM包管理器的使用
2016/02/16 Javascript
AngularJS实现textarea记录只能输入规定数量的字符并显示
2016/04/26 Javascript
js仿淘宝和百度文库的评分功能
2016/05/15 Javascript
纯JS打造网页中checkbox和radio的美化效果
2016/10/13 Javascript
JS中append字符串包含onclick无效传递参数失败的解决方案
2016/12/26 Javascript
Vue 按键修饰符处理事件的方法
2018/05/04 Javascript
vue用Object.defineProperty手写一个简单的双向绑定的示例
2018/07/09 Javascript
JS中验证整数和小数的正则表达式
2018/10/08 Javascript
element vue validate验证名称重复 输入框与后台重复验证 特殊字符 字符长度 及注意事项小结【实例代码】
2018/11/20 Javascript
JavaScript数组排序小程序实现解析
2020/01/13 Javascript
JS一次前端面试经历记录
2020/03/19 Javascript
[01:22:10]Ti4 循环赛第二日 DK vs Empire
2014/07/11 DOTA
[43:35]EG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
Python 3实战爬虫之爬取京东图书的图片详解
2017/10/09 Python
python针对excel的操作技巧
2018/03/13 Python
Python OpenCV 使用滑动条来调整函数参数的方法
2019/07/08 Python
Django实现发送邮件找回密码功能
2019/08/12 Python
150行Python代码实现带界面的数独游戏
2020/04/04 Python
解决Pycharm双击图标启动不了的问题(JetBrains全家桶通用)
2020/08/07 Python
python 操作excel表格的方法
2020/12/05 Python
HTML5之SVG 2D入门13—svg对决canvas及长处和适用场景分析
2013/01/30 HTML / CSS
香港迪士尼乐园酒店预订:Hong Kong Disneyland Hotels
2017/05/02 全球购物
Linux面试经常问的文件系统操作命令
2015/11/05 面试题
使用Vue.js和MJML创建响应式电子邮件
2021/03/23 Vue.js
户外用品商店创业计划书
2014/01/29 职场文书
《寓言两则》教学反思
2014/02/27 职场文书
元宵晚会主持词
2014/03/25 职场文书
园林系毕业生求职信
2014/06/23 职场文书
客房服务员岗位职责
2015/02/09 职场文书
公司停电通知
2015/04/15 职场文书
Android开发之WECHAT微信小程序路由跳转的两种形式
2022/04/12 Java/Android