jquery获取checkboxlist的text的值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery获取checkboxlist的text的值相关的知识,希望对你有一定的参考价值。

不是要value的值,是要text的值,求大神

function getCheckedVal(elename)
    var valStr = "";
var isEmpty = false;
var obj = document.getElementsByName(elename);
var len = obj.length;
for(var i=0;i<len;i++)
if(obj[i].checked)
    isEmpty = true;
valStr += "|" + obj[i].value;


valStr = valStr.substring(1);
var resultArr = Array(valStr,isEmpty);
return  resultArr;

//传入元素名称
//返回 ["1|2", true]  数组; 第一个元素为value字符串,第二个值是否有选中项。

补充一句,没见过要获得text值的,checkbox存在text ? 少年你托控件托傻了?

checkbox只存在value值  至于你要的Text值就是value值

追问

是前端里面只能拿到value值吧?checkbox本身是有text和value两个属性的

追答

不是在前端只能拿到value,你走遍全世界前后端拿到的都是value,也只能是value
checkbox只有value,只不过微软为了控件属性的统一方便 用Text 替代了。 你常使用的text 就是 value,清楚了没???

参考技术A $(找到你要找的所有checkbox).each(function()
alert($(this).text());

/*
如果上面的代码不行,用这句试试
alert($(this).html());
*/

);

如何在 ASP.NET C# 中使用 foreach 获取 CheckBoxList 中选定项目的值?

【中文标题】如何在 ASP.NET C# 中使用 foreach 获取 CheckBoxList 中选定项目的值?【英文标题】:How to get values of selected items in CheckBoxList with foreach in ASP.NET C#? 【发布时间】:2013-09-26 06:39:18 【问题描述】:

我有一个这样的 CheckBoxList:

<asp:CheckBoxList ID="CBLGold" runat="server" CssClass="cbl">
    <asp:ListItem Value="TGJU"> TG </asp:ListItem>
    <asp:ListItem Value="GOLDOZ"> Gold </asp:ListItem>
    <asp:ListItem Value="SILVEROZ"> Silver </asp:ListItem>
    <asp:ListItem Value="NERKH"> NE </asp:ListItem>
    <asp:ListItem Value="TALA"> Tala </asp:ListItem>
    <asp:ListItem Value="YARAN"> Sekeh </asp:ListItem>
</asp:CheckBoxList>

现在我想使用 foreach 从这个 CheckBoxList 中获取所选项目的值,并将这些值放入一个列表中。

【问题讨论】:

***.com/questions/9523263/… 【参考方案1】:

请注意,我更喜欢简短的代码。

List<ListItem> selected = CBLGold.Items.Cast<ListItem>()
    .Where(li => li.Selected)
    .ToList();

或者用一个简单的foreach:

List<ListItem> selected = new List<ListItem>();
foreach (ListItem item in CBLGold.Items)
    if (item.Selected) selected.Add(item);

如果你只想要ListItem.Value:

List<string> selectedValues = CBLGold.Items.Cast<ListItem>()
   .Where(li => li.Selected)
   .Select(li => li.Value)
   .ToList();

【讨论】:

@نرخیاب:编辑了我的答案以显示如何仅选择值。 var 只是List&lt;ListItem&gt; 的快捷方式。 如果您收到 .Cast 不是 ListItemCollection 上的方法的错误,您需要添加引用:“using System.Linq;” 这正是我在服务器端访问所需要的。 String.Join(";", selectedValues.ToArray()) 要补充这个解决方案,将值转换为 int 列表,只需执行此操作 ".Cast().Where(li => li.Selected).Select(li = > li.Value).Select(int.Parse).ToList()"【参考方案2】:
foreach (ListItem item in CBLGold.Items)

    if (item.Selected)
    
        string selectedValue = item.Value;
    

【讨论】:

【参考方案3】:

下午好,你总是可以使用一点 LINQ 来获取选定的列表项,然后对结果做你想做的事:

var selected = CBLGold.Items.Cast<ListItem>().Where(x => x.Selected);
// work with selected...

【讨论】:

【参考方案4】:

根据此处的建议,我添加了一个扩展方法,以使用 LINQ 为从 System.Web.UI.WebControls.<b>ListControl</b> 继承的任何类型返回所选项目的列表。

每个ListControl 对象都有一个Items 类型为ListItemCollection 的属性。 ListItemCollection 公开了一个 ListItems 的集合,每个集合都有一个 Selected 属性。

C 夏普:

public static IEnumerable<ListItem> GetSelectedItems(this ListControl checkBoxList)

    return from ListItem li in checkBoxList.Items where li.Selected select li;

Visual Basic:

<Extension()> _
Public Function GetSelectedItems(ByVal checkBoxList As ListControl) As IEnumerable(Of ListItem)
    Return From li As ListItem In checkBoxList.Items Where li.Selected
End Function

然后,在任何一种语言中都像这样使用:

myCheckBoxList.GetSelectedItems()

【讨论】:

【参考方案5】:
List<string> values =new list<string>();
foreach(ListItem Item in ChkList.Item)

    if(Item.Selected)
    values.Add(item.Value);

【讨论】:

【参考方案6】:

充值@Tim Schmelter,取回List&lt;int&gt;

List<string> selectedValues = CBLGold.Items.Cast<ListItem>()
   .Where(li => li.Selected)
   .Select(li => li.Value)
   .Select(int.Parse)
   .ToList();

【讨论】:

【参考方案7】:

如果您有一个数据绑定checklistbox,则无法获取item(j).Selected,因为该控件没有选定的属性。如果您清除选择,即在加载时,那么显然它现在可以理解item(j).selected

【讨论】:

【参考方案8】:

如果您想将选定的值存储在由, 分隔的单列中,那么您可以使用以下方法

string selectedItems = String.Join(",", CBLGold.Items.OfType<ListItem>().Where(r => r.Selected).Select(r => r.Value));

如果你想存储文本而不是值,那么 将 r.Value 更改为 r.Text

【讨论】:

【参考方案9】:
string s= string.Empty

for (int i = 0; i < Chkboxlist.Items.Count; i++)



    if (Chkboxlist.Items[i].Selected)
    
        s+= Chkboxlist.Items[i].Value + ";"; 
    


【讨论】:

1.您应该稍微解释一下您的代码。 2. 你为什么要发布一个已经有一个已接受答案的问题的答案?【参考方案10】:

在我的代码隐藏中,我在 Page_Load 事件中从 sql db 创建了一个复选框列表,并在我的 button_click 事件中从复选框列表等中获取了所有值。

所以当我检查了一些复选框然后单击我的按钮时,发生的第一件事是我的 page_load 事件重新创建了复选框列表,因此在运行我的获取复选框值时没有检查任何框... 我错过了在 page_load 事件中添加 if (!this.IsPostBack)

protected void Page_Load(object sender, EventArgs e)

   if (!this.IsPostBack)
   
      // db query and create checkboxlist and other
      SqlConnection dbConn = new SqlConnection(WebConfigurationManager.ConnectionStrings["ConnString"].ConnectionString);
      string query;
      try
      
        query = "SELECT [name], [mail] FROM [users]";
        dbConn.Open();
        SqlDataAdapter da = new SqlDataAdapter(query, dbConn);
        DataSet ds = new DataSet();
        da.Fill(ds);
        if (ds.Tables[0].Rows.Count != 0)
        
          checkboxlist1.DataSource = ds;
          checkboxlist1.DataTextField = "name";
          checkboxlist1.DataValueField = "mail";
          checkboxlist1.DataBind();
        
        else
        
          Response.Write("No Results found");
        
       
       catch (Exception ex)
       
          Response.Write("<br>" + ex);
       
       finally
       
          dbConn.Close();
       
   


protected void btnSend_Click(object sender, EventArgs e)
 
   string strChkBox = string.Empty;
   foreach (ListItem li in checkboxlist1.Value)
    
      if (li.Selected == true)
       
         strChkBox += li.Value + "; ";    
         // use only   strChkBox += li + ", ";   if you want the name of each checkbox checked rather then it's value.
       
    
   Response.Write(strChkBox);
 

输出如预期的那样,一个分号分隔的列表供我在邮件发送函数中使用:

    bill@contoso.com; jeff@corp.inc; sam@dot.net

一个小问题的长答案。请注意,我远不是这方面的专家,并且知道有比这更好的解决方案,但它可能对某些人有所帮助。

【讨论】:

这并没有提供问题的答案;这只是对你如何写类似的东西的冗长描述,但它没有用,因为你......没有正确地写它。 Stack Overflow 上的答案应该是直接尝试回答所提出的问题提出的问题;他们不是分享类似轶事的地方。【参考方案11】:

我喜欢使用这种简单的方法来获取选定的值并将它们连接成一个字符串

private string JoinCBLSelectedValues(CheckBoxList cbl, string separator = "")

    return string.Join(separator, cbl.Items.Cast<ListItem>().Where(li => li.Selected).ToList());

【讨论】:

以上是关于jquery获取checkboxlist的text的值的主要内容,如果未能解决你的问题,请参考以下文章

jquery 如何获取asp.net控件 CheckBoxList 中 选中的值?

如何计算使用 Jquery 检查的 CheckBoxList

使用 jQuery AJAX 填充 ASP.Net CheckBoxList ClientSide

使用 Jquery 检查 asp.net checkboxlist

LINQ:使用 Lambda 表达式获取 CheckBoxList 的所有选定值

如何在 ASP.NET C# 中使用 foreach 获取 CheckBoxList 中选定项目的值?