• 用图片模拟checkbox三种状态,图片checkbox和checkbox的联动


    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>用图片模拟checkbox三种状态,图片checkbox和checkbox的联动</title>
    <script language="javascript">

        //图片checkbox全选和全不选,控制两个checkbox的函数
        function img_cb_choose(){
            var value = document.getElementById("img_checkbox").value;                    //取出图片的值,通过这个值判断图片CheckBox的三个状态
            var checkbox_array = document.getElementsByName("checkbox1");        //取出checkbox数组数
            
            if(value == "default"){            //图片checkbox 如果是默认不选,就变成全选
                document.getElementById("img_checkbox").src = "images/all.gif";
                document.getElementById("img_checkbox").value = "all";
                choose(checkbox_array,false,true);
            }else if(value == "all"){    //图片checkbox 如果是全选,就变成不选
                document.getElementById("img_checkbox").src = "images/default.gif";
                document.getElementById("img_checkbox").value = "default";
                choose(checkbox_array,true,false);
            }else if(value == "half"){        //图片checkbox 如果是半选,就变成不选
                document.getElementById("img_checkbox").src = "images/default.gif";
                document.getElementById("img_checkbox").value = "default";
                choose(checkbox_array,true,false);
            }
        }
        
        //传入一个CheckBox,现在的状态,要改变的状态
        function choose(checkbox_array,new_status,status){
            for(i=0;i<checkbox_array.length;i++){                //循环所有数组
                if(checkbox_array[i].checked==new_status)        //现在checkbox的状态
                {
                    checkbox_array[i].checked=status;            //改变后的状态
                }
            }
        }
        
        //checkbox 控制图片checkbox
        function change(){
            
            var img_checkbox = document.getElementsByName("img_checkbox");
            
            var checkbox_array = document.getElementsByName("checkbox1");        //取出checkbox数组
            var str_length = 0;        //选择checkbox的个数
            var checkbox_length = checkbox_array.length;    //数组的长度
            
            for(i=0;i<checkbox_length;i++){
                //alert(i);
    //            alert(checkbox_array[i].value);
                if(checkbox_array[i].checked==true)
                {
                    str_length++;
                    //alert(checkbox_array[i].value);
                    //alert(i);
                }
            }
    //        alert(str_length);
            if(str_length==0){                                                //默认 全选
                document.getElementById("img_checkbox").src = "images/default.gif";
                document.getElementById("img_checkbox").value = "default";
            }else if(str_length<checkbox_length){                            //半选状态,点击后变成全不选.
                document.getElementById("img_checkbox").src = "images/half.gif";
                document.getElementById("img_checkbox").value = "half";
            }else if(str_length==checkbox_length){                            //全不选
                document.getElementById("img_checkbox").src = "images/all.gif";
                document.getElementById("img_checkbox").value = "all";
            }
        }
    </script>
    </head>

    <body>
    <div id="main">
        <div id="images_checkbox">
            <input id="img_checkbox" name="img_checkbox" type="image" src="images/default.gif" onclick="img_cb_choose();" value="default" />
        </div>
        <div>
            <input name="checkbox1" type="checkbox" value="1" onclick="change();" /><br />
            <input name="checkbox1" type="checkbox" value="2" onclick="change();" />
        </div>
    </div>
    </body>
    </html>

  • 相关阅读:
    MSSQL错误1069解决方法
    Xamarin的Mono for Android目前可运行于MIPS上
    Oracle大数据机和连接器产品支持与Hadoop和Cloudera Manager集成
    百度1
    恒生电子
    IGT中国
    经典笔试题——a和&a有什么区别
    腾讯HTTP协议1
    腾讯http协议2
    面向对象的三大特征
  • 原文地址:https://www.cnblogs.com/wangbin/p/1398006.html
Copyright © 2020-2023  润新知