js 多个checkedBox分组互斥功能实现 由于QQ邮件无法发送暂且将js写在博客园

今天有一项目需要实现多个checkbox分组实现组内互斥功能 。

具体要求如下:大的分类分为A B C 三类, 其中 A   B 中又分为 A1 A2 A3   B1 B2 B3  二级分类,二级分类下又有

A11  A12 A13 A14  A21 A22 A31 A32  B11 B12 B13 B14 ... 。要求实现 A B C 互斥 A1 A2 A3 B1 B2 B3 组内互斥。具体结构及代码如下

具体功能树如下:

A

A1

A11

A12

A13

A2

A21

A22

A3

A31

A32

B

B1

B11

B12

B13

B2

B21

B22

B3

B31

B32

C

<script type="text/javascript" src="jquery-min-lastest.js"></script>

<script type="text/javascript">

function CheckedValidate(ckid) {

var sp = new String();
            sp = "1";
            var arr = new Array();
    //定义互斥事件
     var dic_msg = { "ck1000": "ck1000-ck1101-ck1102-ck1103-ck1104-ck1201-ck1202-ck1301-ck1302",
                     "ck1101": "ck1101-ck1000-ck1201-ck1202-ck1301-ck1302",
                     "ck1102": "ck1102-ck1000-ck1201-ck1202-ck1301-ck1302",
                     "ck1103": "ck1103-ck1000-ck1201-ck1202-ck1301-ck1302",
                     "ck1104": "ck1104-ck1000-ck1201-ck1202-ck1301-ck1302",
                     "ck1201": "ck1201-ck1000-ck1101-ck1102-ck1103-ck1104-ck1301-ck1302",
                     "ck1202": "ck1202-ck1000-ck1101-ck1102-ck1103-ck1104-ck1301-ck1302",
                     "ck1301": "ck1301-ck1000-ck1101-ck1102-ck1103-ck1104-ck1201-ck1202",
                     "ck1302": "ck1302-ck1000-ck1101-ck1102-ck1103-ck1104-ck1201-ck1202",

"ck2000": "ck2000-ck2101-ck2102-ck2103-ck2104-ck2201-ck2202-ck2301-ck2302",
                     "ck2101": "ck2101-ck2000-ck2201-ck2202-ck2301-ck2302",
                     "ck2102": "ck2102-ck2000-ck2201-ck2202-ck2301-ck2302",
                     "ck2103": "ck2103-ck2000-ck2201-ck2202-ck2301-ck2302",
                     "ck2104": "ck2104-ck2000-ck2201-ck2202-ck2301-ck2302",
                     "ck2201": "ck2201-ck2000-ck2101-ck2102-ck2103-ck2104-ck2301-ck2302",
                     "ck2202": "ck2202-ck2000-ck2101-ck2102-ck2103-ck2104-ck2301-ck2302",
                     "ck2301": "ck2301-ck2000-ck2101-ck2102-ck2103-ck2104-ck2201-ck2202",
                     "ck2302": "ck2302-ck2000-ck2101-ck2102-ck2103-ck2104-ck2201-ck2202",
                     "ck3000": "ck3000"
               };
       var getCross =
        function (a, b) {
            if (a.length > b.length) {//a长度大于b时交换,应该能提高效率       
                var temp = b, b = a, a = temp;
            }
            var reg = a.replace(/-/g, "|").replace(/\|$/, ""); //构造正则,并去掉结尾的| 
            return b.match(new RegExp(reg, "g")).join(‘-‘);
        };

if ($("#" + ckid).attr("checked")) { sp = dic_msg[ckid]; } else { ; }

$("#worldDestination input:checkbox").each(function (index, ck) {
            if ($("#" + ck.id).attr("checked")) {
                if (sp == "1") { sp = dic_msg[ck.id]; }
                sp = getCross(sp, dic_msg[ck.id]);
               
            }
            else { ; }

}); alert(sp);
   if (sp == "1") {
       $("#worldDestination input:checkbox").each(function (index, ck) {
           $("#" + ck.id).attr("disabled", false);
       });
   }
   else {
       $("#worldDestination input:checkbox").each(function (index, ck) {
           if (sp.indexOf(ck.id) >= 0) { $("#" + ck.id).attr("disabled", false); }
           else { $("#" + ck.id).attr("disabled", true); }
       });
       //$("#" + ckid).attr("disabled", false);
   }
 }

js 多个checkedBox分组互斥功能实现 由于QQ邮件无法发送暂且将js写在博客园,布布扣,bubuko.com

时间: 2024-10-06 06:51:55

js 多个checkedBox分组互斥功能实现 由于QQ邮件无法发送暂且将js写在博客园的相关文章

[JS]玩转博客园的几个“奇技淫巧”

混迹博客园快一个月了,非常喜欢这块技术氛围浓厚的园地,不过在玩转园子的过程中也发现了几个小缺陷,不过好在申请了JS权限之后可以解决大部分的不方便,而在不能植入自定义JS的页面也可以用比较hack的方式来缓解问题.本文就来说一说我这一个月来碰到的几个问题以及解决之道:D 一.判断当前用户 写随笔的过程中可能经常需要对页面进行一下预览,然而编辑器的预览功能没办法带上自定义的CSS和JS,所以通常都得保存草稿然后查看随笔.预览完之后想要继续编辑的话就得一直拉到随笔的结尾,这个实在是不太方便,于是自然就

博客园 打赏功能设置,友言,友荐,分享功能设置

一.jiaThis 分享到设置 <!-- JiaThis Button BEGIN --><script type="text/javascript" src="http://v3.jiathis.com/code/jiathis_r.js?move=0&btn=r5.gif" charset="utf-8"></script><!-- JiaThis Button END --> 二.友荐

如何在博客园没有js执行权限下执行js脚本

前言 小弟刚刚申请的这个博客园博客还比较年轻,没有js执行权限,但是我又想执行js脚本,只好动动歪脑筋. 先从博客园管理中的“页首Html代码”中填写script标签代码,发现保存直接被删除了,又测试了下iframe和frame标签,一样被删除了. 被删除,script标签没有被写入DOM: 解决方案-利用IMG标签的行内事件执行JS 虽然script被删,但是在随后的测试中发现可以添加图片标签. 代码: <img src="http://www.baidu.com/img/baidu_j

仿博客园编辑器的插入代码 代码高亮功能

代码下载地址:http://download.csdn.net/detail/dfg727/7616305 1. a.配置tinymce,增加一个insert code按钮    b.处理显示页面中展开收缩的高亮部分事件 var tinymce_config = function (selector) { tinymce.init({ selector: selector, theme: "modern", menubar: false, plugins: [ "previe

博客园自动循环创建索引目录JS

对于比较长的文章,有一个好的目录索引是很有必要的,可以让读者比较清楚地了解文章内容和层次.然而,目前(2015.7)博客园不像csdn博客那样,会对发布的文章自动生成目录索引.不过,一些网友通过博客园后台提供的一些自定义功能,自己写脚本实现了这一功能.我用的脚本主要就是参考赵子清的,文章地址是:http://www.cnblogs.com/zzqcn/p/4657124.html. 原作者的脚本只支持1级目录,我改了两级:第1级是h2,第2级是h3.还添加了一些小玩意,比如讨论qq群号.效果如下

JS批量删除博客园文章

$('tr').each(function(){ if($(this).attr('id')!=null){ var s = $(this).attr('id').slice(9); console.info("正在删除:"+s); deletePost(s); } }); window.location.reload(); 以前都是用新浪博客的,但是新浪博客对编程类文章支持不好,记录一些html代码总是隐藏. 第一次用博客园,被他简洁的界面吸引. 一看还有博客搬家功能,于是把新浪博客

Web Worker——js的多线程,实现统计博客园总阅读量

前言 众所周知,js是单线程的,从上往下,从左往右依次执行,当我们有耗时的任务需要处理时,便会阻塞线程造成页面卡顿等问题.web worker的目的,就是为JavaScript创造多线程环境,允许主线程将一些任务分配给子线程.在主线程运行的同时,子线程在后台运行,两者互不干扰.等到子线程完成计算任务,再把结果返回给主线程.因此,每一个子线程就好像一个“工人”(worker),默默地完成自己的工作.更多worker的介绍请戳:JavaScript标准参考教程 本文通过web worker 统计博客

博客园个人博客增加打赏功能心得

1.收款码1.1 保存把自己的支付宝和微信二维码收款码(注意是收款码而不是付款码,别搞错)两个图片保存到电脑,并使用图片编辑工具(Windows自带画图软件,或者QQ等其他截图工具都可以)只截取二维码部分即可. 1.2 上传进入个人博客,点“管理”,再点“相册”,添加好相册名称(类似文件夹名称),并上传这两个收款二维码,然后可以在图片上面右击鼠标查看或复制图片网址. 2.JS2.1 开通博客JS权限点“设置”,找到“博客侧边栏公告(支持HTML代码)”,点击[申请JS权限],这里需要填写理由,一

BBS(仿博客园系统)项目05(后台管理功能实现:文章添加、富文本编辑器使用、xss攻击、BeautifulSoup4模块、富文本编辑器上传图片、修改头像)

摘要 布局框架搭建 随笔添加 后台管理富文本编辑器KindEditor xss攻击 文章简介的截取,BeautifulSoup4模块 富文本编辑器上传图片 头像修改 一.后台管理框架布局搭建 后台管理布局框架分析:导航条.左侧功能区.右侧主要功能显示和实现区 实现: 导航条:使用bootstrap模板:JavaScript>>导航条 左侧:使用bootstrap模板:组件>>列表组 右侧:使用bootstrap模板:JavaScript>>标签页 新建后台管理路由(注意