jQuery操作checkbox的方法

  1. 选中checkbox
  2. 获取当前选中的值
  3. 全选和全不选
  4. 自动监听是否要选择全选框

checkbox:复选框。
操作实例:jQuery操作checkbox的方法

下面的html为例进行checkbox的操作。

<input type="checkbox" name="checkbox" id="checkAll" />全选/取消全选
<input type="checkbox" name="checkbox" id="id1" value="1" />1
<input type="checkbox" name="checkbox" id="id2" value="2" />2
<input type="checkbox" name="checkbox" id="id3" value="3" />3
<input type="checkbox" name="checkbox" id="id4" value="4" />4
<input type="checkbox" name="checkbox" id="id5" value="5" />5

选中checkbox

由于和上篇一样的原因jQuery操作radio的方法-选中radio存在的问题,所以这里不再使用attr,从而使用prop

var isSelected = $("#id3").prop("checked");//判断id=id3的那个复选框是否处于选中状态,选中则isSelected=true;否则isSelected=false;
var isSelected = $("#id3").is(":checked");//判断id=id3的那个复选框是否处于选中状态,选中则isSelected=true;否则isSelected=false;
$("#id3").prop("checked", true);//将id=id3的那个复选框选中,即打勾
$("#id3").prop("checked", 'checked');//将id=id3的那个复选框选中,即打勾
$("#id3").prop("checked", false);//将id=id3的那个复选框不选中,即不打勾
$("#id3").prop("checked", '');//将id=id3的那个复选框不选中,即不打勾
$("input[name=checkbox][value=3]").prop("checked", 'checked');//将name=checkbox, value=3 的那个复选框选中,即打勾
$("input[name=checkbox][value=3]").prop("checked", '');//将name=checkbox, value=3 的那个复选框不选中,即不打勾
$("input[type=checkbox][name=checkbox]").get(2).checked = true;//设置index = 2,即第三项为选中状态

document.getElementById("checkAll").checked = true;//原生写法

获取当前选中的值

var val = $("#id1").val();//获取指定id为id1的复选框的值
$("input[type=checkbox][name=checkbox]:checked").each(function(){ //由于复选框一般选中的是多个,所以可以循环输出选中的值
    alert($(this).val());
});

//原生写法
var ids = document.getElementsByName("checkbox");
for(var i=0;i<ids.length;i++){
    if(ids[i].checked){
        alert(ids[i].value);
    }
}

全选和全不选

$("#checkAll").click(function(){
    if($(this).is(":checked")) {
        $("input[name='checkbox']").each(function() {
            this.checked = true;
            //$(this).prop("checked", true); //同上一句
        });
    } else {
        $("input[name='checkbox']").each(function() {
            this.checked = false;
            //$(this).prop("checked", false); //同上一句
        });
    }
});

自动监听是否要选择全选框

$("input[name='checkbox']").click(function() {
    if($(this).is(":checked")) {
        var flag = true;
        $("input[name='checkbox']").each(function() {
            if(this.checked==false) {
                flag = false;
            }
        });
        if(flag==true) {//两种方式均可
            //document.getElementById("checkAll").checked = true;
            $("#checkAll").prop("checked", true);
        }
    } else {
        $("#checkAll").attr("checked", false);
    }
});


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 bin07280@qq.com

文章标题:jQuery操作checkbox的方法

文章字数:681

本文作者:Bin

发布时间:2017-10-01, 12:28:31

最后更新:2019-08-06, 00:52:41

原始链接:http://coolview.github.io/2017/10/01/JavaScript/jQuery%E6%93%8D%E4%BD%9Ccheckbox%E7%9A%84%E6%96%B9%E6%B3%95/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录