JavaScript操作checkbox复选框

2018-04-26编程教程
103

JavaScript操作checkbox的方式和操作radio的方式相似,都是利用元素项的checked属性来完成。先获取checkbox元素集合,遍历集合,对集合中的每一项做操作。
 
 
这里讲几个常用的checkbox复选框的常见示例。
 
 
取值
 
<body>  
    <p>  
        <label for="hobby">Hobby:    
            <input type="checkbox" name="hobby" value="reading" />阅读    
            <input type="checkbox" name="hobby" value="climbing" />爬山    
            <input type="checkbox" name="hobby" value="running" />跑步    
            <input type="checkbox" name="hobby" value="fishing" />钓鱼    
            <input type="checkbox" name="hobby" value="cooking" />做饭    
            </br></br>  
            <input type="button" value="Get Value" onclick="getValue()" />  
        </label>  
    </p>  
</body>  
 
 要获取多选框的值,该怎么处理呢?
 
 
跟获取radio单选按钮值的步骤相同。
 
 
1 获取复选框元素集合
 
2 遍历复选框元素
 
3 将选中的复选框的值拼接出来,返回
 
function getValue(){  
    var hobbies = document.getElementsByName("hobby");  
    var value;  
    for (i=0; i<hobbies.length; i++){  
        if (hobbies[i].checked){  
            if (!value){  
                value = hobbies[i].value;  
            } else {  
                value += "," + hobbies[i].value;  
            }  
        }  
    }  
      
    alert(value == undefined ? '' : value);  
}  
这里我们将复选框值拼接出来,之间用“,”分隔,返回的时候,如果没有选中,则返回空字符串,而非JavaScript的默认空值undefined。
 
 
全选
 
全选是复选框中常见的一个操作,选中所有的选项。
 
全选也是基于checked属性的操作,遍历所有的元素项,将每一个元素项的checked属性都置为true。
 
<body>  
    <p>  
        <label for="hobby">Hobby:    
            <input type="button" name="selectAll" value="selectAll" onclick="selectAll()" />全选    
            <input type="button" name="selectOther" value="selectOther" onclick="selectOther()" />反选  
            </br></br>  
            <input type="checkbox" name="hobby" value="reading" />阅读    
            <input type="checkbox" name="hobby" value="climbing" />爬山    
            <input type="checkbox" name="hobby" value="running" />跑步    
            <input type="checkbox" name="hobby" value="fishing" />钓鱼    
            <input type="checkbox" name="hobby" value="cooking" />做饭    
            </br></br>  
            <input type="button" value="Get Value" onclick="getValue()" />  
        </label>  
    </p>  
</body>  
 全选时,首先需要判断当前复选框是否处于全选的状态,然后再适时的全选,或全不选。
 
 
判断是否处于全选状态:true,全选;false,非全选
 
function isSelectAll(){  
    var hobbies = document.getElementsByName("hobby");  
    for (i=0; i<hobbies.length; i++){  
        if (!hobbies[i].checked){  
            return false;  
        }  
    }  
    return true;  
}  
 
全选操作
 
function selectAll(){  
    var hobbies = document.getElementsByName("hobby");  
    if (isSelectAll()){  
        for (i=0; i<hobbies.length; i++){  
            hobbies[i].checked = false;  
        }  
    } else {  
        for (i=0; i<hobbies.length; i++){  
            hobbies[i].checked = true;  
        }  
    }  
}  
 
 
反选
 
反选的操作即选中那些当前没有被选中的项,并将当前选中的项取消。
 
function selectOther(){  
    var hobbies = document.getElementsByName("hobby");  
    for (i=0; i<hobbies.length; i++){  
        if (hobbies[i].checked){  
            hobbies[i].checked = false;  
        } else {  
            hobbies[i].checked = true;  
        }  
    }  
}  
 
上面几个例子,都是本人今天没事写的玩的,里面可能有些操作不是很符合客户体验,如果您有更好的方案,可以提出来。但就通过上面的示例,应该能很好的理解checkbox了吧。
 
 
其实 checkbox和radio一样,都是基于checked属性,对它们的操作就是对checked属性的操作,技术checked属性就可以了。
The End

相关推荐

layui根据百度地图经纬度在弹出层中显示位置
首先你需要引入百度地图的js script type="text/javascript" src="https://api.map.baidu.com/api?v=2.0ak=你的ak"/script ak ,注意是要浏览器端的ak,这个直接到百度开发者平台申请。 引入layui,这个大家可以到layui官网看看怎么引入layer, 注意:这里要提...
2025-01-09 编程教程
240

Ajax中文传值出现乱码的解决办法
Ajax技术的核心为Javascript,而javascript使用的是UTF-8编码,因此在页面采用GBK或者其他编码,同时没有进行编码转换时,就会出现中文乱码的问题。 以下是分别使用GET和POST方式传值,并且页面采用GBK和UTF-8编码在IE和FF下的不同测试结果和出现乱码时的解...
2022-11-19 编程教程
364

JS实现获取当前URL和来源URL的方法
这篇文章主要介绍了JS实现获取当前URL和来源URL的方法,涉及javascript针对页面document属性操作的相关技巧,需要的朋友可以参考下 index.html: !DOCTYPE htmlhtml lang=zh-cnheadmeta charset=UTF-8meta name=viewport content=width=device-width, initial-...
2019-01-08 编程教程
237

PHP怎么使用AJAX返回登录成功信息!
以下是完整参考代码,index.php为登录页面,ajax.php为处理ajax无刷新请求页面。 index.php !DOCTYPE htmlhtml head meta charset=utf-8 / title登录/title script type=text/javascript src=http://cdn.bootcss.com/jquery/2.1.4/jquery.min.js/script /hea...
2018-05-07 编程教程
118

使用implode()函数将数组逗号隔开连接为字符串
checkbox提交过来一个数组,为了将数组中的值插入到SQL语句执行,需要将数组的键值使用逗号隔开: index.html form action=2.php method=postinput name=select[] type=checkbox value=1 /1input name=select[] type=checkbox value=2 /2input name=select[]...
2018-05-05 编程教程
134

Layui + php + Smarty 实现分页
页面内容 (分页容器) div class=admin-table-page div id=page class=page/div/div javascript 代码 //调用分页laypage({ cont: page, //分页容器的id pages: {#$maxpage#} //总页数, groups: 5 //连续显示分页数, curr:{#$currentPage#} //当前页数, jump:...
2018-05-03 编程教程
157