获取checkboxlist中项目的值并保存在hiddenfield中

时间:2013-09-09 10:41:22

标签: jquery

我有一个复选框列表。

<asp:CheckBoxList ID="cblList" runat="server" RepeatDirection="Horizontal">                                                 
<asp:ListItem Value="S04">1</asp:ListItem>
<asp:ListItem Value="S08">2</asp:ListItem>
<asp:ListItem Value="S09">3</asp:ListItem>
<asp:ListItem>All</asp:ListItem>
 </asp:CheckBoxList>

和隐藏字段

    <asp:HiddenField ID="hddnValue" runat="server" />

我想将选中的checkboxlist值存储在HiddenField中。

生成的HTML

<td><input id="ctl00_ContentPlaceHolder1_cblList_0" type="checkbox" name="ctl00$ContentPlaceHolder1$cblList$0" /><label for="ctl00_ContentPlaceHolder1_cblList_0">1</label></td>

<td><input id="ctl00_ContentPlaceHolder1_cblList_1" type="checkbox" name="ctl00$ContentPlaceHolder1$cblList$1" /><label for="ctl00_ContentPlaceHolder1_cblList_1">2</label></td>

<td><input id="ctl00_ContentPlaceHolder1_cblList_2" type="checkbox" name="ctl00$ContentPlaceHolder1$cblList$2" /><label for="ctl00_ContentPlaceHolder1_cblList_2">3</label></td>

<td><input id="ctl00_ContentPlaceHolder1_cblList_3" type="checkbox" name="ctl00$ContentPlaceHolder1$cblList$3" /><label for="ctl00_ContentPlaceHolder1_cblList_3">4</label></td>

我试过

    $(function() {
    $('#ctl00_ContentPlaceHolder1_btnConfirm').click(function() {
        debugger;
        var val = [];
        $(':checkbox:checked').each(function(i) {
            val[i] = $(this).val();
        });
    });
});
没有任何运气。请帮助。

谢谢,

的Rahul

2 个答案:

答案 0 :(得分:1)

首先在隐藏字段上添加class,以便更容易识别:

<asp:HiddenField ID="hddnValue" CssClass="selectedItems" runat="server" />

然后在你的jQuery中使用map()创建一个选择数组并将值设置为以逗号分隔的列表:

$('#ctl00_ContentPlaceHolder1_btnConfirm').click(function() {
    var values = $(':checkbox:checked').map(function() {
        return this.value;
    }).join(',');
    $('.selectedItems').val(values);
});

答案 1 :(得分:1)

或者你可以做这样的事情

$('#ctl00_ContentPlaceHolder1_btnConfirm').click(function () {
    var val = [];
    $('#cblList').find('input[type=checkbox]:checked').each(function () {
        val.push($(this).val());
    })
    $('#hddnValue').val(val.join(','));
});