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随机生成信用卡卡号的方法
Apr 07 Javascript
简介JavaScript中Math.cos()余弦方法的使用
Jun 15 Javascript
Bootstrap菜单按钮及导航实例解析
Sep 09 Javascript
Vue Transition实现类原生组件跳转过渡动画的示例
Aug 19 Javascript
vue实现图片滚动的示例代码(类似走马灯效果)
Mar 03 Javascript
Express之托管静态文件的方法
Jun 01 Javascript
Layui给数据表格动态添加一行并跳转到添加行所在页的方法
Aug 20 Javascript
Angular Material Icon使用详解
Nov 07 Javascript
JavaScript中.min.js和.js文件的区别讲解
Feb 13 Javascript
微信小程序获取地理位置及经纬度授权代码实例
Sep 18 Javascript
highcharts.js数据绑定方式代码实例
Nov 13 Javascript
vue3为什么要用proxy替代defineProperty
Oct 19 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
thinkphp中连接oracle时封装方法无法用的解决办法
2013/06/17 PHP
PHP实现的常规正则验证helper公共类完整实例
2017/04/27 PHP
TP5框架model常见操作示例小结【增删改查、聚合、时间戳、软删除等】
2020/04/05 PHP
JavaScript 对任意元素,自定义右键菜单的实现方法
2013/05/08 Javascript
JS字符串处理实例代码
2013/08/05 Javascript
Jquery.Form 异步提交表单的简单实例
2014/03/03 Javascript
jQuery中scrollTop()方法用法实例
2015/01/16 Javascript
Jquery使用val方法读写value值
2015/05/18 Javascript
jQuery带进度条全屏图片轮播特效代码分享
2020/06/28 Javascript
JS实现页面载入时随机显示图片效果
2016/09/07 Javascript
promise处理多个相互依赖的异步请求(实例讲解)
2017/08/03 Javascript
浅谈vue中使用图片懒加载vue-lazyload插件详细指南
2017/10/23 Javascript
从理论角度讨论JavaScript闭包
2019/04/03 Javascript
详细讲解如何创建, 发布自己的 Vue UI 组件库
2019/05/29 Javascript
手把手15分钟搭一个企业级脚手架
2019/09/16 Javascript
基于纯JS实现多张图片的懒加载Lazy过程解析
2019/10/14 Javascript
解决echarts echarts数据动态更新和dataZoom被重置问题
2020/07/20 Javascript
vue-cli或vue项目利用HBuilder打包成移动端app操作
2020/07/29 Javascript
[24:42]VP vs TNC Supermajor小组赛B组 BO3 第三场 6.2
2018/06/03 DOTA
python结合opencv实现人脸检测与跟踪
2015/06/08 Python
python 出现SyntaxError: non-keyword arg after keyword arg错误解决办法
2017/02/14 Python
Python数据结构之栈、队列及二叉树定义与用法浅析
2018/12/27 Python
用Python逐行分析文件方法
2019/01/28 Python
Python获取基金网站网页内容、使用BeautifulSoup库分析html操作示例
2019/06/04 Python
python使用writerows写csv文件产生多余空行的处理方法
2019/08/01 Python
Python实现AI自动抠图实例解析
2020/03/05 Python
基于python实现把json数据转换成Excel表格
2020/05/07 Python
详解基于python的全局与局部序列比对的实现(DNA)
2020/10/07 Python
大学优秀班集体申报材料
2014/05/23 职场文书
健康教育评估方案
2014/05/25 职场文书
体育教师求职信
2014/06/30 职场文书
领导干部作风整顿个人剖析材料
2014/10/11 职场文书
计划生育诚信协议书
2014/11/02 职场文书
师范生小学见习总结
2015/06/23 职场文书
2016教师学习教育法心得体会
2016/01/19 职场文书
Java日常练习题,每天进步一点点(38)
2021/07/26 Java/Android