Foreach循环动态数量的复选框,获取名称

时间:2013-05-29 17:53:55

标签: jquery asp.net-mvc checkbox

所以我有了这个概念(我很容易理解它是一个糟糕的概念)来遍历动态数量的checkboxes并取出每个checkbox的名称。选中并将其推送到表单上的隐藏文本字段,以便已选择的checkboxes名称的值可以在我的应用程序的其他位置使用。但是,对于JQuery来说有点新,我不确定是否可以这样做或者如何完成。这是我迄今为止的研究成果:

相关的JQuery:

    $('#saveButton').click(function () {

      $('checkbox').each(function () {
          if ($(this).is(':checked')) {
              $('#hiddenDate').append($(this).text());
          }
      });
   });

相关观看代码:

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<% using (Html.BeginForm("SaveExit", "User", new { }, FormMethod.Post, new { id = "selectExitPoints" }))    { %>
    <fieldset>
        <div class="title center xl">Event&nbsp;Exit&nbsp;Selection&nbsp;</div>
        <table class="data-table">
        <%var odd = true; %>
        <%foreach (var log in Model.Log.OrderBy(s => s.DateEntered))
        { %>
            <tr class="row_<%=(odd ? "odd" : "even")%>">
                <td><input class="skill-checkbox" name="<%=log.DateEntered%>" type="checkbox" /></td>
                <td><span class="skill-text"><%= log.DateEntered%></span></td>
                <td><span class="skill-text"><%= log.EntryAccessPoint %></span></td>
            </tr>
            <%odd = !odd;%>
        <% } %>
        </table>
        <input type="hidden" id="hiddenDate" />
    </fieldset>
<% } %>

有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:2)

您可以使用jQuery .map()。就像那样:

var values = $.map($(':checkbox:checked'), function(el){
    return $(el).prop('name');
})
$('input').val(values.join(','));