本来是想通过下面的代码给checkboxlist生成的checkbox项添加value值,可是通过测试无法实现;如果可以添加value值的话,用js获取值的代码也就容易实现了;
for (int i = 0; i < checkboxlis.tItems.Count; i++)
{
checkboxlist.Items[i].Attributes.Add("value",checkboxlist.Items[i].value);
}
通过checkboxlist生成的html代码可以发现,每个checkbox的值都是紧跟后面的label,因此获取了label的text值就获取了checkbox的值了;测试的时候发现了js的nextSibling属性,nextSibling可以获取当前dom对象的下一个对象,这里正好用到;
下面是checkboxlist生成的html代码:
<input id="cblSiteStyle_0" type="checkbox" name="cblSiteStyle$0" οnclick="addKeyWord(this.id);" /><label for="cblSiteStyle_0">B2B</label></td><td><input id="cblSiteStyle_1" type="checkbox" name="cblSiteStyle$1" οnclick="addKeyWord(this.id);" /><label for="cblSiteStyle_1">B2C</label></td><td><input id="cblSiteStyle_2" type="checkbox" name="cblSiteStyle$2" οnclick="addKeyWord(this.id);" /><label for="cblSiteStyle_2">C2C</label></td><td><input id="cblSiteStyle_3" type="checkbox" name="cblSiteStyle$3" οnclick="addKeyWord(this.id);" /><label for="cblSiteStyle_3">B2G</label>
方法1:
js获取label的text值的函数,IE和FIREFOX都可以用
function addKeyWord(cbl)
{
var kw = document.getElementById("txtkeyWord");
var kwv=kw.value;
var cblv="";
if(document.getElementById(cbl).checked)
{
cblv=document.getElementById(cbl).nextSibling.innerHTML;
alert(cblv);
}
}
记得在cs代码里要给checkboxlist的checkbox项添加onclick事件
for (int i = 0; i < checkboxlist.Items.Count; i++)
{
checkboxlist.Items[i].Attributes.Add("onclick", "addKeyWord(this.id)");
}
方法2:
<head runat="server">
<script language="javascript" type="text/javascript">
function IsListCheck(postback)
{
//cblcomplain_Nature为checkboxlist的id
var lst = document.getElementById('<%= cblcomplain_Nature.ClientID%>').getElementsByTagName('input');
if(lst.length>0)
{
for(var i=0;i<lst.length;i++)
{
if(lst[i].checked)
{
if(lst[i].nextSibling.innerHTML=='其他')
{
document.getElementById('span1').style.display='block';
if(postback=='true')//初始化时不改变TextBox1的样式
{
document.getElementById("TextBox1").style["backgroundColor"]="#FFCCCC";
document.getElementById("TextBox1").focus();
}
}
else
{
document.getElementById('span1').style.display='none';
}
}
}
}
}
</script>
</head>
<body οnlοad="javascript:IsListCheck('false');">//初始化加载js方法
<form id="form1" runat="server">
<div style="text-align: center; margin-left: 100px">
<asp:CheckBoxList ID="cblcomplain_Nature" runat="server" RepeatColumns="6" RepeatDirection="Horizontal"
οnclick="IsListCheck('true')">
<asp:ListItem>无效投诉</asp:ListItem>
<asp:ListItem>有效投诉</asp:ListItem>
<asp:ListItem>态度问题</asp:ListItem>
<asp:ListItem>业务操作问题</asp:ListItem>
<asp:ListItem>中途退租</asp:ListItem>
<asp:ListItem>来访</asp:ListItem>
<asp:ListItem>流程问题</asp:ListItem>
<asp:ListItem>政策问题</asp:ListItem>
<asp:ListItem>投诉到政府部门</asp:ListItem>
<asp:ListItem>退款/赔偿</asp:ListItem>
<asp:ListItem>其他</asp:ListItem>
</asp:CheckBoxList>
<span id="span1" style="float: left; display: none">其他投诉性质:<asp:TextBox ID="TextBox1"
runat="server"></asp:TextBox></span>
</div>
</form>
</body>