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

时间:2011-10-21 16:38:39

标签: c# jquery asp.net checkboxlist

我正在尝试获取复选框列表的选定值(或值)。我的问题是我在c#中绑定了checkboxlist,并且没有使用“Value”属性进行渲染,因为如果我要硬编码

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

我的复选框列表如下所示:

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

因此,当我尝试使用jquery并执行跟随时,它仅返回“on”作为“myID”。我错过了什么吗?我的印象是DataValueField的用途是什么? 这是我正在使用的js:

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

感谢。

4 个答案:

答案 0 :(得分:2)

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

还要检查相关问题:Where are the DataValueField values for a CheckBoxList stored?

答案 1 :(得分:1)

您应该能够获得所有这些选中的项目:

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

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

答案 2 :(得分:0)

您可以使用jQuery的attr()方法获取官方或其他任何属性:

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

答案 3 :(得分:0)

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

这将检查该值是否已设置为DesiredValue。只要值发生变化,事件就会触发。您必须检查以确保检查导致事件触发的项目,如果它具有您关心的值,则必须检查。