您的位置:首页 > Web前端 > JQuery

JQuery插件第五个:操作复选框

2011-12-21 07:32 288 查看
var chb={
	o:null,
	f : function(){ 
	return document.forms[0];
	},//获取一组复选框的值
    Get:function($obj){  
        var ids=',';  
        $obj.each(function(){  
            ids+=$(this).is(":checked")?','+$(this).val():'';  
        });  
        ids=ids.replace(',,',''); 
        ids=(ids==',')?'':ids; 
        return ids;  
    },  //给一组复选框设置值
    Set:function($obj,checkBoxValues){  
        if(typeof checkBoxValues=='string')  
        {   var ids=','+checkBoxValues+',';
            $obj.each(function(){  
                var val=','+$(this).val()+',';  
                $(this).attr("checked",ids.indexOf(val)>-1?true:false);  
            });  
        }    
    },
//在某范围内全选或全不选
s:function (obj,str)
{
	if(obj.checked == true)
		this.setCheck("all",str);
	else
		this.setCheck("clear",str);
	this.o=obj;
},
// 全选
a:function () 
{	
	this.setCheck("all");
},
//反选 
r:function () 
{
	this.setCheck("rev");
},
// 全不选
c:function () 
{ 
	this.setCheck("clear");
},
// 选择checkBox
setCheck:function (sVal,sStr) 
{
	 $("input:checkbox:not(:disabled)",this.f()).each(function(){
				var e=this;
				if(this.o!=e && sStr==null)
				{
					if(sVal=="all")// 全选
					{
						e.checked=true; 
					}
					else if(sVal=="rev")// 反选
					{
						e.checked=!e.checked; 
					}
					else if(sVal=="clear")// 全不选
					{
						e.checked=false; 
					}
				}
				// 选择某一控件内部的checkBox
				else if (this.o!=e && e.id.indexOf(sStr)>=0) 
				{
					if(sVal=="all")// 全选
					{
						e.checked=true; 
					}
					else if(sVal=="rev")// 反选
					{
						e.checked=!e.checked; 
					}
					else if(sVal=="clear")// 全不选
					{
						e.checked=false; 
					}
				}
	});
},
// 选择某一控件内部的checkBox
selControlIsCheck:function (sStr) 
{ 
	var iCount=0;
	 $("input:checkbox:checked",this.f()).each(function(){
		var e=this;
		if(e.id.indexOf(sStr)>=0)
		iCount++;
	 });
	return iCount;
}
,checkboxChoose:function ()
{	 
	$("input:checkbox:checked").each(function(){
		return true;
	});
	return false;
}
,checkControlAll:function (sStr,sAll,sid,sidDiv) {
        var checkboxCount = 0;
        var count = 0;
		sAll=(sAll==null)?"selestAll":sAll;
		$("input:checkbox").each(function(){
			var i=this;
            if (i.id.indexOf(sStr)>=0) {
				if(i.disabled!=true)
				{
					checkboxCount++;
                }
            }
			if(i.id != sAll)
			   {
					if(i.checked==true&& sStr==null)
				   {
					 count++;
				   }
				   else if(i.checked==true&&i.id.indexOf(sStr)>=0)
				   {
					 count++;
				   }
			   }
		});
		$("#"+sAll).attr("checked",(count == checkboxCount )?true:false);
        var iCount =(sid!=null)?this.selControlIsCheck(sid):0;
        if(iCount==0 && sidDiv!=null)
        {
			$("#"+sidDiv).css({"color":"red"}).text("*必选");
        }
        else if(iCount > 0 && sidDiv!=null)
        {
			$("#"+sidDiv).css({"color":"black"}).text("√");
        }
    }
}
$.extend({
		chkBox:chb 
		 });
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: