zoukankan      html  css  js  c++  java
  • 限定checkbox最多选中数量

    一、概述:

      checkbox是我们在编写网页的时候经常使用的多选框,但是有些时候我们会限定最多选中的数量,如何限定呢?

      下面这例子限定了最多选中两个元素,并且将这两个选中的源依次显示在一个文本框里:

    <!DOCTYPE HTML >
    <HTML>
     <HEAD>
      <TITLE> by失落沙洲 </TITLE>
     </HEAD>
     <style>
        #xianshi{
            height:30px;
            width:200px;
            border:1px solid black;
        }
     </style>
     <BODY>
        <div id="xianshi"></div>
        <div id="d1">
            <input type="checkbox" name="tianqi" value="下雨" onclick="check_count(this)" >下雨
            <input type="checkbox" name="tianqi" value="下雪" onclick="check_count(this)" >下雪
            <input type="checkbox" name="tianqi" value="打雷" onclick="check_count(this)" >打雷
            <input type="checkbox" name="tianqi" value="闪电" onclick="check_count(this)" >闪电
            <input type="checkbox" name="tianqi" value="台风" onclick="check_count(this)" >台风
            <input type="checkbox" name="tianqi" value="晴天" onclick="check_count(this)" >晴天
        </div>
     <script type="text/javascript" src="jquery-1.11.3.js"></script>
     <script type="text/javascript">
         var opts = new Array(); //定义一个空数组
            function check_count(_obj) {
                if ($(":checkbox[name='tianqi']:checked").length >= 0) {//找到name为天气的多选框 如果被选中的checkbox 长度大于0
                    opts.push($(":checkbox[name='tianqi']").index($(_obj)));//将这个元素压入到opts数组中
                    var val=$(_obj).val();//获取当前被选中的值
                    var html="";//定义一个空字符串
                    html+="<span>"+val+"</span>"//将被选中的值 拼在span标签内 并且传入html中
                    if(_obj.checked){//判断 如果当前元素被选中
                        $(html).appendTo("#xianshi");/* 将拼好的html元素插入到 显示框内
                                                        注意html 现在是这样的 <span>天气名称</span>
                                                        穿到html页面是这种的
                                                        <div id="#xianshi">
                                                            <span>当前选中的天气名称</span>
                                                            <span>第二次选中的天气名称</span>
                                                            <span>第三次选中的天气名称</span>
                                                        </div>
                                                        下面会有限制条件
                                                        */
    
                    }else{
                        $("#xianshi").innerHTML='';//如果没有被选中显示框为空
                    }
                }
                if (opts.length >2) {//如果当前数组长度大于2时,这里就是判定你选中了多少个checkbox
                    $($(":checkbox[name='tianqi']").get(opts.shift())).attr("checked", false);/*将你第一个选中的 check值设为false
                                                                                                注:checked 值有两个true为选中
                                                                                                                  false为未选中*/
                    $("#xianshi").children("span:eq(0)").remove();/*找到#xiashi框,查找他下面的第一个span标签
                                                                    eq(0)是span标签的下标,0是第一个 1是第二个 
                                                                    排序方式跟数组相同的应该比较好理解
                                                                    remove()是移除函数
                                                                    也就是将你插入到#xianshi下的第一个span标签移除
                                                                    这样就按照顺序显示了
                                                                    */
                }
                
            }
     </script>
     </BODY>
    </HTML>

      代码里面已经写了注释,相信大家能看懂,此处注意,文档引用了jquery文件,代码写的比较粗糙,需要测试的朋友可以略作修改。

  • 相关阅读:
    C++ 类
    百练3383:Cell Phone Network
    百练4092:牛仔裤
    百练4091:最近餐馆
    百练4090:超级备忘录
    百练2868:牛顿迭代
    百练2812:恼人的青蛙
    百练2805:正方形
    bzoj1856 [Scoi2010]字符串
    bzoj2096 [Poi2010]Pilots
  • 原文地址:https://www.cnblogs.com/shazhou-blog/p/5183129.html
Copyright © 2011-2022 走看看