从jquery中的asp复选框列表中获取所选复选框的值

本文关键字:复选框 获取 列表 jquery 中的 asp | 更新日期: 2023-09-27 18:11:52

我正在尝试获取复选框列表的选定值。我的问题是,我在c#中绑定了checkboxlist,并且它没有像硬编码那样使用"Value"属性进行渲染

<asp:ListItem Value=".." .. />

我的支票簿是这样的:

<asp:CheckBoxList runat="sever" ID="cblStuff" DataValueField="myID" DataTextField="myName"></asp:CheckBoxList>

因此,当我尝试使用jquery并执行以下操作时,它只返回与"myID"对应的"on"。我是不是错过了什么?我的印象是DataValueField的作用是什么?这是我正在使用的js:

$("checkboxlist selector").change(function() {
      $(this).find(":checked").each(function() { alert($(this).val()); });
});

谢谢。

从jquery中的asp复选框列表中获取所选复选框的值

DataValueField是服务器端属性,不会以html形式呈现,因此无法使用jquery或任何其他客户端代码获取值。

还要检查相关问题:CheckBoxList的DataValueField值存储在哪里?

您应该能够获得所有检查项,如下所示:

$("#<%=cblStuff.ClientID%> input[type=checkbox]:checked").each(function(){
    var val = $(this).attr("value");
});

我认为默认情况下CheckBox控件没有value属性,但CheckBoxList可能有。在任何一种情况下,都可以添加值属性。

您可以使用jQuery的attr()方法来获取任何属性,无论是官方属性还是其他属性:

$("checkboxlist selector").change(function() {
    $(this).find(":checked").each(function() {
        alert($(this).attr('DataValueField')); 
    });
});
$('#<%= checkboxlist.ClientID %> input:checkbox').change(function () {
if ($(this).is(":checked") && $(this).val() == "DesiredValue")
        alert($(this).val());
});

这将检查该值是否已设置为DesiredValue。只要值发生更改,就会触发事件。您必须进行检查,以确保导致事件激发的项目已被选中,并且如果是,它是否具有您关心的值。