前台从checkboxlist取值问题

dawei 2008-06-20 02:25:13
这行代码只能取出checkboxlist的text值,我想取出value的值,请问怎么改???
function CheckASP(object)
{

//如果这里我们想得到要选中的值,方法还是有的,但是和常规的有所不同
var chkInput = object.getElementsByTagName("INPUT");
var chkLable = object.getElementsByTagName("Label");
var team= document.getElementById("txtTeamHide");
team.value="";
for(var i=0;i<chkInput.length;i++)
{
if(chkInput[i].checked)
{
//team.value+=chkLable[i].innerHTML+",";
team.value+= chkInput[i].innerHTML;
//

}
}
...全文
123 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
drummery 2008-06-20
  • 打赏
  • 举报
回复
仔细看一下服务器控件生成的客户端代码就可以知道,CheckBox的Text属性在页面上,但是Value属性并没有,因为Value在ViewState里,所以在客户端直接通过脚本是不可能找到Value的

楼主可以变通一下思路,利用JavaScript的特性,把你的Value值做成数组,变成字符串以后,保存在一个隐藏域里,然后客户端选项发生变化时,根据单选框的索引从隐藏域中或取出字符串,编程数组后取相应的选项值,或采取更好的方案。但无论如何直接取值应该是不行的。
run_ant 2008-06-20
  • 打赏
  • 举报
回复
你右键“查看源码”,看看你ID是什么?
fellowcheng 2008-06-20
  • 打赏
  • 举报
回复
用了这个方法后,CheckBoxList实际生成的html是这样的
 <table id="CheckBoxList1" border="0">
<tr>
<td><span selectvalue="aa"><input id="CheckBoxList1_0" type="checkbox" name="CheckBoxList1$0" /><label for="CheckBoxList1_0">1</label></span></td>
</tr><tr>
<td><span selectvalue="bb"><input id="CheckBoxList1_1" type="checkbox" name="CheckBoxList1$1" /><label for="CheckBoxList1_1">2</label></span></td>
</tr><tr>
<td><span selectvalue="cc"><input id="CheckBoxList1_2" type="checkbox" name="CheckBoxList1$2" /><label for="CheckBoxList1_2">3</label></span></td>
</tr>
</table>


fellowcheng 2008-06-20
  • 打赏
  • 举报
回复
前台
<head runat="server">
<title>无标题页</title>
<script type="text/javascript">

function getSelectCkb()
{
var object = document.getElementById("CheckBoxList1");
var chkInput = object.getElementsByTagName("INPUT");
var chkLable = object.getElementsByTagName("Label");
var chkSpan = object.getElementsByTagName("span");
for(var i=0;i <chkInput.length;i++)
{
if(chkInput[i].checked)
{
alert(chkSpan[i].selectvalue);
}
}
}
</script>
</head>
<body>
<form id="form1" runat="server">

<div>
<asp:CheckBoxList ID="CheckBoxList1" runat="server">

</asp:CheckBoxList><input type=button onclick="getSelectCkb()" />
</div>
</form>
</body>
</html>


后台
        ListItem item1,item2,item3;
item1 = new ListItem("1", "aa");
item1.Attributes.Add("selectvalue", "aa");
item2 = new ListItem("2", "bb");
item2.Attributes.Add("selectvalue", "bb");
item3 = new ListItem("3", "cc");
item3.Attributes.Add("selectvalue", "cc");

CheckBoxList1.Items.Add(item1);
CheckBoxList1.Items.Add(item2);
CheckBoxList1.Items.Add(item3);
fellowcheng 2008-06-20
  • 打赏
  • 举报
回复
是的,没有value值。

这是CheckBoxList生成的静态页面:
<table id="CheckBoxList1" border="0" style="Z-INDEX: 102; LEFT: 128px; POSITION: absolute; TOP: 160px">
<tr>
<td><input id="CheckBoxList1_0" type="checkbox" name="CheckBoxList1:0" /></td>
</tr>
</table>

只能变通一下
按照顺序命名checkboxlist,诸如CheckboxList_1,CheckboxList_2...
就可以通过循环来找到选中的项
for (i = 0; i < number; i++)
{
if (document.getElementByID("checkboxlistName_" + i ).checked)
{
//do something
}
}
chenguang79 2008-06-20
  • 打赏
  • 举报
回复
这样是取不出value值的。有没有高手帮着解释一下

62,266

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧