小弟最近困扰这个问题。在网上找了篇很好的文章。正好可以解决问题现在转发一下。网址是这个:
http://www.cnblogs.com/SoulStore/archive/2008/07/09/1239126.html
用JavaScript获取Asp.net服务器端控件CheckBoxList的选中值数组
通用版本(不依赖任何类库)
function GetCheckBoxListValue(objID)
{
var v = new Array();
var CheckBoxList = document.getElementById(objID);
if (CheckBoxList.tagName == "TABLE")
{
for (i=0;i<CheckBoxList.rows.length;i++)
for (j=0;j<CheckBoxList.rows[i].cells.length;j++)
if (CheckBoxList.rows[i].cells[j].childNodes[0])
if (CheckBoxList.rows[i].cells[j].childNodes[0].checked== true )
v.push(CheckBoxList.rows[i].cells[j].childNodes[1].innerText);
}
if (CheckBoxList.tagName == "SPAN")
{
for (i=0;i<CheckBoxList.childNodes.length;i++)
if (CheckBoxList.childNodes[i].tagName == "INPUT")
if (CheckBoxList.childNodes[i].checked== true )
{
i++;
v.push(CheckBoxList.childNodes[i].innerText);
}
}
return v;
}
Asp.net Ajax 版本(依赖 Asp.net Ajax 类库支持)
function GetCheckBoxListValue(objID)
{
var v = new Array();
var CheckBoxList = $get(objID);
if (CheckBoxList.tagName == "TABLE")
{
for (i=0;i<CheckBoxList.rows.length;i++)
for (j=0;j<CheckBoxList.rows[i].cells.length;j++)
if (CheckBoxList.rows[i].cells[j].childNodes[0])
if (CheckBoxList.rows[i].cells[j].childNodes[0].checked== true )
Array.add(v,CheckBoxList.rows[i].cells[j].childNodes[1].innerText);
}
if (CheckBoxList.tagName == "SPAN")
{
for (i=0;i<CheckBoxList.childNodes.length;i++)
if (CheckBoxList.childNodes[i].tagName == "INPUT")
if (CheckBoxList.childNodes[i].checked== true )
{
i++;
Array.add(v,CheckBoxList.childNodes[i].innerText);
}
}
return v;
}
我尝试过。的确可以在不使用postback的情况下,在客户端获取checkbox的选中值。