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打开新窗口同时关闭旧窗口
Jan 16 Javascript
javascript parseInt 函数分析(转)
Mar 21 Javascript
分享20款好玩的jQuery游戏
Apr 17 Javascript
JS中eval函数的使用示例
Jul 21 Javascript
jquery实现对联广告的方法
Feb 05 Javascript
jQuery获取同级元素的简单代码
Jul 09 Javascript
AngularJs ng-repeat 嵌套如何获取外层$index
Sep 21 Javascript
Angularjs中controller的三种写法分享
Sep 21 Javascript
ionic+AngularJs实现获取验证码倒计时按钮
Apr 22 Javascript
浅谈Vue父子组件和非父子组件传值问题
Aug 22 Javascript
JS实现的简单tab切换功能完整示例
Jun 20 Javascript
基于js实现复制内容到操作系统粘贴板过程解析
Oct 11 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 JSON中文乱码的解决方法详解
2013/06/06 PHP
WordPres对前端页面调试时的两个PHP函数使用小技巧
2015/12/22 PHP
php array_key_exists() 与 isset() 的区别
2016/10/24 PHP
jquery的Tooltip插件 qtip使用详细说明
2010/09/08 Javascript
JavaScript定时器详解及实例
2013/08/01 Javascript
Firefox中通过JavaScript复制数据到剪贴板(Copy to Clipboard 跨浏览器版)
2013/11/22 Javascript
JQuery的Ajax中Post方法传递中文出现乱码的解决方法
2014/10/21 Javascript
jQuery实现下滑菜单导航效果代码
2015/08/25 Javascript
浅谈Javascript中Object与Function对象
2015/09/26 Javascript
js根据手机客户端浏览器类型,判断跳转官网/手机网站多个实例代码
2016/04/30 Javascript
Vue父子模版传值及组件传值的三种方法
2017/11/27 Javascript
vue返回上一页面时回到原先滚动的位置的方法
2018/12/20 Javascript
详解Node.js使用token进行认证的简单示例
2020/05/25 Javascript
Windows和Linux下使用Python访问SqlServer的方法介绍
2015/03/10 Python
Python计算字符宽度的方法
2016/06/14 Python
ubuntu安装mysql pycharm sublime
2018/02/20 Python
python os.listdir按文件存取时间顺序列出目录的实例
2018/10/21 Python
在python中实现调用可执行文件.exe的3种方法
2019/07/07 Python
Django 创建后台,配置sqlite3教程
2019/11/18 Python
Python爬虫小例子——爬取51job发布的工作职位
2020/07/10 Python
HTML5之SVG 2D入门2—图形绘制(基本形状)介绍及使用
2013/01/30 HTML / CSS
Perricone MD裴礼康美国官网:抗衰老护肤品
2016/09/26 全球购物
西班牙最大的在线滑板和街头服饰商店:Fillow.net
2019/04/15 全球购物
世界上最大的乐谱选择:Sheet Music Plus
2020/01/18 全球购物
应届中专生自荐书范文
2014/02/13 职场文书
合作协议书
2014/04/23 职场文书
青春奉献演讲稿
2014/05/08 职场文书
服务理念口号
2014/06/11 职场文书
升国旗演讲稿
2014/09/05 职场文书
小学班主任经验交流材料
2014/12/16 职场文书
财务经理岗位职责范本
2015/04/08 职场文书
农村党员干部承诺书
2015/05/04 职场文书
2016年世界艾滋病日宣传活动总结
2016/04/01 职场文书
创业计划书之酒吧
2019/12/02 职场文书
教你怎么用PyCharm为同一服务器配置多个python解释器
2021/05/31 Python
Python爬取英雄联盟MSI直播间弹幕并生成词云图
2021/06/01 Python