zoukankan      html  css  js  c++  java
  • jQuery 关于 checkbox

    一、针对单个的checkbox的JQuery操作:

    HTML:

    <label class="checkbox-group" style="position: relative;">
        <input class="singleCheck" onchange="siglecheck(this);" type="checkbox">
        <ins class="checkbox-cover"></ins>
    </label>

    jQuery 选中取消操作:

    function siglecheck(obj){     
        if($(obj).prop("checked")){
          $(obj).attr("checked","checked");
           $(obj).parent().addClass("checked");    
        }else{
           $(obj).removeAttr("checked");
           $(obj).parent().removeClass("checked");    
        }     
     }

    jquery判断checked的方法:

    .attr('checked); //看版本1.6+返回:”checked”或”undefined” ;1.5-返回:true或false
    .prop('checked'); //16+:true/false
    .is(':checked'); //所有版本:true/false//

    jquery赋值checked:

    所有的jquery版本都可以这样赋值:
     $(obj).attr("checked","checked");
     $(obj).attr("checked",true);
    
    jquery1.6+:prop 赋值:
     $(obj).prop("checked",true); 
     $(obj).prop({checked:true});
     $(obj).prop("checked","checked");  
     $(obj).prop("checked",function(){
         return true;//函数返回true或false
    });

    二、针对一组的checkbox的JQuery操作:

    HTML:

    <label class="checkbox-group" for="checkall" style="position: relative;">
        <input class="multCheck" type="checkbox" id="checkall" />
    </label>
    
    <label class="checkbox-group" style="position: relative;">
        <input class="singleCheck" type="checkbox" />
    </label>
    <label class="checkbox-group" style="position: relative;">
        <input class="singleCheck" type="checkbox" />
    </label>

    全选 / 反选

    $("#checkall").change(function(){           
            if($("#checkall").prop("checked")==true){  
               $("input:checkbox").prop("checked",true); 
               $("input:checkbox").attr("checked","checked");  
           $("input:checkbox").parent().addClass("checked");    
            } else  {  
                $("input:checkbox").removeAttr("checked");                 
                $("input:checkbox").parent().removeClass("checked");    
            }   
    });

    清空子选项,全选清空

    $(".singleCheck").bind({  
         change:function(){
                $(".singleCheck").each(function(){
                if($(this).attr("checked") == "checked"){
                   $(this).removeAttr("checked"); 
                   $(this).parent().removeClass("checked");
                }else{
                   $(this).prop("checked",true); //singleCheck,页面显示选中  
                       $(this).attr("checked","checked");//checked属性值设置为checked  
                       $(this).parent().addClass("checked");
                     };
                });
                var checkedLength=$(".singleCheck[checked='checked']").length; //attr方法赋值checked都为计算出子checkbox的长度  
                var subLength=$(".singleCheck").length; 
                if(subLength!=checkedLength){  
                    $("#checkall").prop("checked",false); 
                    $("#checkall").removeAttr("checked");
                    $("#checkall").parent().removeClass("checked");
                } else { 
                     //如果所有的子checkbox被选中,全选框也全选中
                    $("#checkall").attr("checked","checked");  
                    $("#checkall").prop("checked",true);  
                    $(".singleCheck").attr("checked","checked");  
                    $(".singleCheck").prop("checked",true);  
                    $("#checkall").parent().addClass("checked");
                }   
            }     
         });

    其他说明:

    1、checkbox 、radio等应该用 change 事件,防止重复二次点击操作(click事件点击后会激发两次操作)

    2、像checkbox,radio和select这样的元素,选中属性对应“checked”和“selected”,这些属于固有属性,需要使用prop方法操作,才会获得正确的结果。如果属性是我们自己自定义上去,建议使用attr方法。

    3、attr 是对checked属性进行修改。prop方法只能让checkbox在页面上动态的显示选中或不选中,属性并没有改变。

    我就是我,记性不好,那就用写的吧。
  • 相关阅读:
    PHP导入导出Excel方法
    14款优秀的MySQL客户端
    php接收二进制数据流转换成图片
    PHP中curl_setopt的CURLOPT系列 选项(转)
    二十五个顶级PHP模板
    设计模式——观察者模式 Observer
    设计模式——装饰者模式
    关于JS中的constructor与prototype
    解决JQuery和其他库共存
    json 基础知识
  • 原文地址:https://www.cnblogs.com/rainy0496/p/7798015.html
Copyright © 2011-2022 走看看