js全选

var counter1 = 0; 
var counter2 = 0;
function GetChildCheckBoxCount(pattern) 
{    
    var checkBoxCount = 0;     
    var elements = document.getElementsByTagName("INPUT");     
    for(i=0; i<elements.length;i++) 
    {
        if(IsCheckBox(elements[i]) &&  IsMatch(elements[i].id,pattern)) checkBoxCount++; 
    }
   return parseInt(checkBoxCount); //parseInt
}
function IsMatch(id,pattern) 
{
    var regularExpresssion = new RegExp(pattern);  //new RexExp();
    if(id.match(regularExpresssion)) return true; 
    else return false; 
}
function IsCheckBox(chk) 
{
    if(chk.type == 'checkbox') return true; 
    else return false;
}
function AttachListener(pattern)
{
    var elements =  document.getElementsByTagName("INPUT");
    for(i=0; i< elements.length; i++) 
    {       
        if( IsCheckBox(elements[i]) &&  IsMatch(elements[i].id,pattern)) 
        {
            AddEvent(elements[i],'click',CheckChild); 
        }
    }    
}
function CheckChild(e) 
{
    var evt = e || window.event; 
    var obj = evt.target || evt.srcElement 
    if(IsMatch(obj.id,"(GridViewFirst)"))
    {
        if(obj.checked)
        {
            if(counter1 < GetChildCheckBoxCount("(GridViewFirst)")) 
                { counter1++; }        
        }
        else 
        {
           if(counter1 > 0) { counter1--; }    
        } 
        if(counter1 == GetChildCheckBoxCount("(GridViewFirst)")) 
        { 
            document.getElementById("chkAll1").checked = true; 
        } 
        else if(counter1 < GetChildCheckBoxCount("(GridViewFirst)")) 
        { 
            document.getElementById("chkAll1").checked = false; 
        }
    }
    else if(IsMatch(obj.id,"(GridViewSecond)"))
    {
        if(obj.checked)
        {
            if(counter2 < GetChildCheckBoxCount("(GridViewSecond)")) 
                { counter2++; }        
        }
        else 
        {
           if(counter2 > 0) { counter2--; }    
        } 
        if(counter2 == GetChildCheckBoxCount("(GridViewSecond)")) 
        { document.getElementById("chkAll2").checked = true; } 
        else if(counter2 < GetChildCheckBoxCount("(GridViewSecond)")) { document.getElementById("chkAll2").checked = false; }    
    }
}
function AddEvent(obj, evType, fn) 
{
    if (obj.addEventListener)
    {
    obj.addEventListener(evType, fn, true);
    return true;
    } 
    else if (obj.attachEvent)
    {
       var r = obj.attachEvent("on"+evType, fn);
       return r;
    }
    else
    {
        return false;
    }    
}
//(GridViewFirst)+
function Check(parentChk,pattern) 
{
    
    var elements =  document.getElementsByTagName("INPUT");
    for(i=0; i<elements.length;i++) 
    {
        if(parentChk.checked == true) 
        {
            if( IsCheckBox(elements[i]) &&  IsMatch(elements[i].id,pattern)) 
            {
                elements[i].checked = true; 
            }         
        }
        else 
        {
            if( IsCheckBox(elements[i]) &&  IsMatch(elements[i].id,pattern)) 
            {
                elements[i].checked = false; 
            }
            if(IsMatch('GridViewFirst',pattern))  
            {   
                counter1 = 0; 
            }
            else if(IsMatch('GridViewSecond',pattern))
            {   
                counter2 = 0; 
            }            
        }       
    }    
    if(parentChk.checked == true && IsMatch('GridViewFirst',pattern)) 
    {        
        counter1 = GetChildCheckBoxCount(pattern);
    }
    else if(parentChk.checked == true && IsMatch('GridViewSecond',pattern)) 
    {
        counter2 = GetChildCheckBoxCount(pattern);
    }
}
posted @ 2008-09-16 14:32  roboth  阅读(1280)  评论(1)    收藏  举报