代码之家  ›  专栏  ›  技术社区  ›  Korpin

使用Ajax获取复选框的值,每个值为$

  •  0
  • Korpin  · 技术社区  · 6 年前

    一个小问题,我认为我离目标很近。

    我正在尝试检索来自已选中数组的所有复选框的值,以便将这些值发送到我的控制器。 (这允许用户选择或不选择某些选项)。

    我仍然指定#stuff.SubEvent_Zkp具有唯一的值。

    带有复选框的表格

                    <tbody>
                        @foreach (var stuff in Model._Registration_SubEvents)
                        {
                            <tr>
                                <td class="col-md-3">@stuff.SubEvent_Name</td>
                                <td class="col-md-1">@stuff.SubEvent_Date.ToShortDateString()</td>
                                <td>@stuff.SubEvent_Fee</td>
                                <td>@stuff.SubEvent_Note</td>
                                <td><input style=" height:17px; width:17px; margin-top:5px; margin-left:22px" type="checkbox" name="CheckSub" id="CheckSub" value="@stuff.SubEvent_Zkp" /></td>
                            </tr>
                        }
                    </tbody>
    

    将@stuff.SubEvent_Zkp的值放入收藏夹数组的代码

        $.each($("input[name='CheckSub']:checked"), function () {
            favorite.push($(this).val());
        });
    

    我将收藏夹放在数据中(在ajax调用中)

    data: { Id: id, Status: status,Checkin: checkin, Checkout: checkout, Cost: cost, Terms: check1, Info: check2, values: favorite },
    
    2 回复  |  直到 6 年前
        1
  •  2
  •   GregH    6 年前

    下面是一个简单的用例,我使用数据属性成功地从复选框中检索所有数据属性值,并将它们推送到一个数组中(我在这里使用数据属性,因为它们似乎更适合表示您试图使用的对象) value 属性(用于):

             <table>
                <tr>
                    <td class="col-md-3">name</td>
                    <td class="col-md-1">date</td>
                    <td>fee</td>
                    <td>note</td>
                    <td><input style=" height:17px; width:17px; margin-top:5px; margin-left:22px" type="checkbox" name="CheckSub" data-checksub="1"  /></td>
                </tr>
                <tr>
                    <td class="col-md-3">name</td>
                    <td class="col-md-1">date</td>
                    <td>fee</td>
                    <td>note</td>
                    <td><input style=" height:17px; width:17px; margin-top:5px; margin-left:22px" type="checkbox" name="CheckSub" data-checksub="2" /></td>
                </tr>
            </table>
    

    var array = [];
    $.each($("input[name='CheckSub']"), function () {
        array.push($(this).data("checksub"));
    });
    //array now contains values 1 and 2
    

    因此,您的表行将如下所示:

    <tr>
        <td class="col-md-3">@stuff.SubEvent_Name</td>
        <td class="col-md-1">@stuff.SubEvent_Date.ToShortDateString()</td>
        <td>@stuff.SubEvent_Fee</td>
        <td>@stuff.SubEvent_Note</td>
        <td><input style=" height:17px; width:17px; margin-top:5px; margin-left:22px" type="checkbox" name="CheckSub" data-checksub="@stuff.SubEvent_Zkp"/></td>
    </tr>
    

    此外,请确保页面上呈现的值不都是0!

        2
  •  0
  •   Pavel    6 年前

    Id应该是唯一的。请尝试以下操作:

    ... id="@stuff.SubEvent_Zkp" value="@stuff.SubEvent_Zkp"...