我想使用javascript或jquery在数组中保存checkbox的值。 我的checkboxlist在datalist中。每当用户选择一个项目时,我想将所选项目的值添加到数组中。
ASPX :
<asp:DataList ID="dl_Groups_1" RepeatColumns="1" runat="server" OnItemDataBound="dl_Groups_1_ItemDataBound" RepeatDirection="vertical" ShowFooter="False" ShowHeader="False">
<ItemTemplate>
<asp:CheckBox Font-Bold="true" runat="server" ID="chk_Group_1" Text='<%# Eval("category_type") %>' Value='<%# Eval("service_type_category_id") %>' onclick="OnGroupClick" />
<asp:CheckBoxList CssClass="line" runat="server" ID="chkServiceType_1" DataValueField="ServiceTypeID" DataTextField="Name" EnableViewState="true">
</asp:CheckBoxList>
<br />
</ItemTemplate>
</asp:DataList>
我尝试了下面的内容,得到了被选中的项目,但我在这里被打动了......
function test() {
$(":checkbox").each(function () {
if (this.checked) {
alert(this);
}
});
}
当我这样做时,我得到警告信息为“开”而不是值。我在哪里调用javascript以保持数组更新选择和取消选择checkboxlist中的项目?
答案 0 :(得分:2)
var arrValues = new Array();
function test() {
$(":checkbox").each(function () {
if (this.checked && arrValues.indexOf(this.value) == -1) {
arrValues.push(this.value);
}
});
}
答案 1 :(得分:0)
使用map()
var selectedValue= $("input:checkbox:checked").map(function(){
return this.value;
}).get();
console.log(selectedValue);
selectedValue将在数组中包含所有选中的值..
答案 2 :(得分:0)
var val;
$('#<%= chkServiceType_1.ClientID %> input[type=checkbox]').change(function(){
val = $("#<%= chkServiceType_1.ClientID %> input[type=checkbox]:checked").map(function(){
return this.value;
}).get();
})