我正在尝试获取复选框列表的选定值(或值)。我的问题是我在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()); });
});
感谢。
答案 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
。只要值发生变化,事件就会触发。您必须检查以确保检查导致事件触发的项目,如果它具有您关心的值,则必须检查。