欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 前端技术 > javascript >内容正文

javascript

JavaScript 获取服务器端checkBoxlist控件选中的值

发布时间:2025/7/25 javascript 64 豆豆
生活随笔 收集整理的这篇文章主要介绍了 JavaScript 获取服务器端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; }

三、

CheckboxList是服务器控件,绑定数据容易,用着貌似蛮顺手的。但是生成的静态页面居然没有ListItem的Value值,所以默认情况下在页面中是取不到ListItem的值的。
原始生成页面代码:
<table id="ctl00_mainContent_FriendsList" border="0">
<tr>
   <td><input id="ctl00_mainContent_FriendsList_0" type="checkbox" name="ctl00$mainContent$FriendsList$0" /><label for="ctl00_mainContent_FriendsList_0">jarome</label></td><td><input id="ctl00_mainContent_FriendsList_1" type="checkbox" name="ctl00$mainContent$FriendsList$1" /><label for="ctl00_mainContent_FriendsList_1">admin1</label></td><td></td>
</tr>
</table>
这里面只有Label里面的Text值,显然取不到Value值。
想点办法,自己加个值进来,在数据绑定之后加上下面代码:
      foreach (ListItem li in FriendsList.Items)
            {
                li.Attributes.Add("alt", li.Value);
            }
就是给ListItem加个alt属性,赋予Value值,相当于:

<asp:CheckBoxList ID="FriendsList" runat="server">
            <asp:ListItem Value="jarome" alt="jarome">jarome</asp:ListItem>
            <asp:ListItem Value="admin" alt="admin">admin1</asp:ListItem>
</asp:CheckBoxList>

页面生成代码:

<table id="ctl00_mainContent_FriendsList" border="0">
<tr>
   <td><span alt="jarome"><input id="ctl00_mainContent_FriendsList_0" type="checkbox" name="ctl00$mainContent$FriendsList$0" /><label for="ctl00_mainContent_FriendsList_0">jarome</label></span></td><td><span alt="admin"><input id="ctl00_mainContent_FriendsList_1" type="checkbox" name="ctl00$mainContent$FriendsList$1" /><label for="ctl00_mainContent_FriendsList_1">admin1</label></span></td><td></td>
</tr>
</table>

看到多了个<span/>,alt中就是我们想要取得的值。

//获取CheckBoxList值,使用jQuery类库
function GetCheckBoxListValue(obj) { //obj为CheckBoxList的ClientID
     var v = new Array();
     $("#" + obj+ " input").each(function() {
         if (this.checked) {
             v.push($(this).parent().attr("alt"));
         }
     });
     return v; //返回一列以','分隔的结果
}

转载于:https://www.cnblogs.com/myneng/articles/1691311.html

总结

以上是生活随笔为你收集整理的JavaScript 获取服务器端checkBoxlist控件选中的值的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。