2013-04-12 34 views
1

我想使用javascript或jquery將複選框的值保存在數組中。 我的複選框列表在數據列表中。每當用戶選擇一個項目時,我想將所選項目的值添加到數組中。如何保存數組中checkboxlist的選定值?

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> 

我試過下面,讓那些slected的項目,但我在這裏奏響了......

function test() { 
    $(":checkbox").each(function() { 
     if (this.checked) { 
      alert(this); 
     } 
    }); 
} 

當我這樣做,我得到警告消息爲「ON」和而不是價值。我在哪裏可以調用javascript來保持數組更新選擇和取消選擇checkboxlist中的項目?

回答

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

我在哪裏可以調用這個函數test()? – Anuya

+0

其他人說**每當用戶選擇一個項目**那麼爲什麼迭代?爲什麼不點擊事件? – 2013-04-12 07:47:40

+0

@Pankaj Garg我只是基於他的代碼來展示如何將項目添加到數組 –

0

使用map()

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

console.log(selectedValue); 

了selectedValue將所有的檢測值在陣列..

+0

其他人說**每當用戶選擇一個項目**那麼爲什麼迭代?爲什麼不點擊事件? – 2013-04-12 07:47:10

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(); 
}) 
相關問題