如何使用MVC中的已检查ID创建数组

时间:2017-04-26 06:34:53

标签: javascript asp.net-mvc asp.net-mvc-4

    <script type="text/javascript">
            $(function () {
                    var CustomerIDArray=[];
                    $('#tblEmailScheduler').find('input[type="checkbox"]:checked').each(function (i,item) {
//how to Add checked id's in array??

                    });
                });
            });
        </script>

 <table id="tblEmailScheduler"  class="table-bordered col-offset-12">
                <thead>
                    <tr class="label-primary">
                        <th style="padding:5px 15px;">
                            First Name
                        </th>
                        <th style="padding:5px 15px;">
                            Last Name
                        </th>
                        <th style="padding:5px 15px;">
                            Email ID
                        </th>
                        <th style="padding:5px 15px;">
                            Customer Type
                        </th>
                        <th style="padding:5px 15px;">
                            Customer Designation
                            @Html.DropDownList("CustomerDesignation", new SelectList(ViewBag.SelectAllCustomerDesignationDDL, "Value", "Text"), new { id = "CustomerDesignationDDL" , name = "CustomerDesignationDDL" })
                        </th>
                        <th style="padding:5px 15px;">
                            Select All
                            <div class="checkbox control-group">
                                <label>
                                    <input type="checkbox" id="cbSelectAll" />
                                </label>
                            </div>
                        </th>

                    </tr>
                </thead>
                <tfoot>
                    <tr>
                        <th colspan="2">
                            EmailTemplate :
                            @Html.DropDownList("EmailSubject", new SelectList(ViewBag.SelectAllEmailTemplateDDL, "Value", "Text"), new { id = "SelectAllEmailTemplateDDL" })
                        </th>
                        <th colspan="2">
                            Set Date And Time:
                            <input type="text" class = "from-date-picker" readonly = "readonly"  />
                        </th>
                        <th colspan="2">
                           <input type="submit" value="Schedule" id="btnSubmit" class="btn btn-default" />
                        </th>
                        <td>

                        </td>
                    </tr>
                </tfoot>
                @foreach (var item in Model)
                {
                    <tr style="text-align:center">
                        <td id="tblFirstName">
                            @item.FirstName
                        </td>
                        <td id="tblLastName">
                            @item.LastName
                        </td>
                        <td id="tblEmailID">
                            @item.EmailID
                        </td>
                        <td id="tblCustomerType">
                            @item.CustomerType
                        </td>
                        <td id="tblCustomerDesignation">
                            @item.CustomerDesignation
                        </td>
                        <td>
                            <div class="checkbox control-group">
                                <label>
                                    <input type="checkbox" id="cbCustomer" value="@item.CustomerID" class="checkBoxClass"/>
                                </label>
                            </div>
                        </td>
                    </tr>
                }

          </table>
  

这是我的代码。在此Foreach中为每行生成复选框。一世   想在java脚本中创建数组。当我检查特定行时   那个行CustomerID应该在函数中添加,当我取消选中时   特定行然后它应该从数组中删除。

2 个答案:

答案 0 :(得分:2)

你试过这个吗?

<form id="formEmail" action="#" method="post">
            <table id="tblEmailScheduler">
                <tr>
                    <td>
                        <label>
                            <input type="checkbox" id="cbSelectAll" name="cbSelectAll" value="1"/>
                        </label>
                    </td>
                    <td>
                        <label>
                            <input type="checkbox" value="2" name="cbCustomer"/>
                            <input type="checkbox" value="3" name="cbCustomer"/>
                            <input type="checkbox" value="5" name="cbCustomer"/>
                            <input type="checkbox" value="9" name="cbCustomer"/>
                        </label>
                    </td>
                </tr>
            </table>
            <button type="submit" name="button">submit</button>
        </form>

jquery的代码

$('#formEmail').submit(function(){
             var CustomerIDArray = [];
            $('#tblEmailScheduler input[name=cbCustomer]').each(function(){
                if($(this).is(':checked')) {
                    CustomerIDArray.push($(this).val());
                }
            });
            console.log(CustomerIDArray);
            return false;//remove this line while you submit form and add action in form tag
         });
         $('#cbSelectAll').click(function(){

             if($(this).is(':checked') == true) {
                $('input[name=cbCustomer]').prop('checked','true');
             } else {
                 $('input[name=cbCustomer]').removeAttr('checked');
             }

         });

你只需要为id

的insces分配名称

答案 1 :(得分:1)

在您的代码中,您的所有复选框都具有相同的ID。您必须更改代码并为所有复选框提供唯一ID。最后在数组中添加这些ID。

@foreach (var item in Model)
    {
        <tr style="text-align:center">

            <td>
                <div class="checkbox control-group">
                    <label>
                        <!-- SEE id property here, I've made it dynamic -->
                        <input type="checkbox" id="cbCustomer_@item.CustomerID" value="@item.CustomerID" class="checkBoxClass"/>
                    </label>
                </div>
            </td>
        </tr>
    }

<script>
        $(function () {
            $('#btnSubmit').submit(function () {
                var CustomerIDArray=[]; 
            $('#tblEmailScheduler').find('input[type="checkbox"]').each(function (i,item) {
                    // just push the item in array, if it checked
                    if($(item).prop('checked'))
                        CustomerIDArray.push(item.Id); 
                });
            });
        });
 </script>

由于您已编辑了问题,现在以下代码可以正常工作......

 <script>
            $(function () {
                $(".checkBoxClass").click(function (e) {
                var CustomerIDArray=[]; 
                $('#tblEmailScheduler').find('input[type="checkbox"]').each(function (i,item) {
                        // just push the item in array, if it checked
                        if($(item).prop('checked'))
                            CustomerIDArray.push(item.Id); 
                    });
                });
            });
     </script>