从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()); });
});
谢谢。
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
。只要值发生更改,就会触发事件。您必须进行检查,以确保导致事件激发的项目已被选中,并且如果是,它是否具有您关心的值。