如何将复选框列表的选定值保存到数组中

How to save the selected value of checkboxlist in array?

本文关键字:保存 数组 复选框 列表      更新时间:2023-09-26

我想使用javascript或jquery将复选框的值保存在数组中。我的复选框在数据列表中。每当用户选择一个项目时,我都想将选中项目的值添加到数组中。

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);
        }
    });
}

当我这样做时,我得到警报消息为"ON"而不是值。我在哪里调用javascript保持数组更新选择和取消选择复选框列表中的项目?

var arrValues = new Array();
function test() {
    $(":checkbox").each(function () {
        if (this.checked && arrValues.indexOf(this.value) == -1) {
            arrValues.push(this.value);
        }
    });
}

use map()

 var selectedValue= $("input:checkbox:checked").map(function(){
     return this.value;
 }).get();
console.log(selectedValue);

selectedValue将在数组中包含所有选中的值。

var val;
$('#<%= chkServiceType_1.ClientID %> input[type=checkbox]').change(function(){
   val = $("#<%= chkServiceType_1.ClientID %> input[type=checkbox]:checked").map(function(){
          return this.value;
       }).get();
})