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);
}
}

浙公网安备 33010602011771号