1

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」としてアラートメッセージが表示されます。そして、checkboxlist のアイテムを選択および選択解除するときに配列を更新し続けるために、JavaScript をどこで呼び出すのですか?

4

3 に答える 3

2
var arrValues = new Array();
function test() {
    $(":checkbox").each(function () {
        if (this.checked && arrValues.indexOf(this.value) == -1) {
            arrValues.push(this.value);
        }
    });
}
于 2013-04-12T07:37:45.557 に答える
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();
})
于 2013-04-12T07:50:31.540 に答える
0

使用するmap()

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

console.log(selectedValue);

selectedValue には、配列内のすべてのチェックされた値が含まれます。

于 2013-04-12T07:44:00.897 に答える