如何在数组中保存checkboxlist的选定值?

时间:2013-04-12 07:33:40

标签: javascript jquery asp.net

我想使用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中的项目?

3 个答案:

答案 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();
})