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 处理网页内容的实现代码
Feb 15 Javascript
根据一段代码浅谈Javascript闭包
Dec 14 Javascript
分享27款非常棒的jQuery 表单插件
Mar 28 Javascript
使用javascript实现ListBox左右全选,单选,多选,全请
Nov 07 Javascript
jquery通过a标签删除table中的一行的代码
Dec 02 Javascript
JS 调用微信扫一扫功能
Dec 22 Javascript
JavaScript对象引用与赋值实例详解
Mar 15 Javascript
详解vuejs之v-for列表渲染
Jun 22 Javascript
详解Vue.js组件可复用性的混合(mixin)方式和自定义指令
Sep 06 Javascript
node.js的exports、module.exports与ES6的export、export default深入详解
Oct 26 Javascript
如何在Vue中使localStorage具有响应式(思想实验)
Jul 14 Javascript
node.js使用express-fileupload中间件实现文件上传
Jul 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
Thinkphp实现MySQL读写分离操作示例
2014/06/25 PHP
PHP实现的解汉诺塔问题算法示例
2018/08/06 PHP
prototype 的说明 js类
2006/09/07 Javascript
jquery.AutoComplete.js中文修正版(支持firefox)
2010/04/09 Javascript
jQuery EasyUI NumberBox(数字框)的用法
2010/07/08 Javascript
js函数模拟显示桌面.scf程序示例
2014/04/20 Javascript
jquery选择器排除某个DOM元素的方法(实例演示)
2014/04/25 Javascript
Jquery实现仿腾讯微博发表广播
2014/11/17 Javascript
Bootstrap滚动监听(Scrollspy)插件详解
2016/04/26 Javascript
JQuery异步加载PartialView的方法
2016/06/07 Javascript
Vue.js中组件中的slot实例详解
2017/07/17 Javascript
jquery学习笔记之无new构建详解
2017/12/07 jQuery
浅谈Node.js 中间件模式
2018/06/12 Javascript
javascript实现简易的计算器
2020/01/17 Javascript
jquery实现上传文件进度条
2020/03/26 jQuery
python监控网卡流量并使用graphite绘图的示例
2014/04/27 Python
好用的Python编辑器WingIDE的使用经验总结
2016/08/31 Python
Python中查看变量的类型内存地址所占字节的大小
2019/06/26 Python
Python之数据序列化(json、pickle、shelve)详解
2019/08/30 Python
Flask框架路由和视图用法实例分析
2019/11/07 Python
Python 实现黑客帝国中的字符雨的示例代码
2020/02/20 Python
Python 内存管理机制全面分析
2021/01/16 Python
一个入门级python爬虫教程详解
2021/01/27 Python
HTML5实现音频和视频嵌入的方法
2018/08/22 HTML / CSS
存储过程的优缺点是什么
2015/01/10 面试题
小学家长会邀请函
2014/01/23 职场文书
经理助理岗位职责
2014/03/05 职场文书
融资租赁计划书
2014/04/29 职场文书
幼师求职自荐信
2014/05/31 职场文书
2014年纪委工作总结
2014/12/05 职场文书
2014年学生管理工作总结
2014/12/20 职场文书
结婚当天新郎保证书
2015/05/08 职场文书
管理者们如何制定2019年的工作计划?
2019/07/01 职场文书
什么是执行力?9个故事告诉您:成功绝非偶然!
2019/07/05 职场文书
MySQL5.7并行复制原理及实现
2021/06/03 MySQL
Redis超详细讲解高可用主从复制基础与哨兵模式方案
2022/04/07 Redis