【问题标题】:how to get selected checkbox row data in model dialog box?如何在模型对话框中获取选中的复选框行数据?
【发布时间】:2017-10-05 17:11:06
【问题描述】:

当我选择任何复选框时出现问题,只有选定的行数据应该在模型对话框中可见。

  1. 但我的情况是,当我点击流程(调用模型对话框)时,我将选择或不选择所有数据。
  2. 但是在点击保存数据按钮(在模型内部)后,数据会正确显示我选择的内容。
  3. 但我必须在点击保存数据按钮之前显示数据。

html代码

<div class="row">
            <div class="col-md-12">
                <h1>OMR Duplicate Students List</h1>
                <table id="example" class="table">
                    <tr>
                        <th><input type="checkbox" ng-click="vm.selectAll()"
                        /></th>
                        <th>Name</th>
                        <th>Mobile</th>
                    </tr>
                    <tr ng-repeat="data in vm.data">
                        <td><input type="checkbox" ng-model="data.selected"class="duplicateRow" /></td>
                        <td>{{data.name}}</td>
                        <td>{{data.mobileNumber}}</td>
                    </tr>
                    <tr>
                    <tr>
                    <button type ="submit" class="button pull-right"  data-toggle="modal" data-target="#myModal">Process</button>
                    </tr>
                </table>
                    <table class="table">
                        <tr>
                            <td colspan="4">
                                <pagination page-number='{{vm.pageNumber}}' page-count="{{vm.pageCount}}" total-records="{{vm.totalRecords}}" api-url="duplicate-student"></pagination>
                            </td>
                        </tr>
                    </table>
           </div>
        </div>
        <div id="myModal" class="modal fade">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-header">
                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
                <h4 class="modal-title">These Recods You are Selected</h4>
            </div>
            <div class="modal-body">
                <div class="row">
            <div class="col-md-12">
                <!-- <div ng-if="data.selected === 'true'"> -->
                <table id="example" class="table">
                    <tr>

                        <th>Name</th>
                        <th>Mobile</th>
                    </tr>
                    <tr ng-repeat="x in vm.data">
                        <td>{{x.name}}</td>
                        <td>{{x.mobileNumber}}</td>
                    </tr>


                </table>
                <!-- </div> -->

           </div>
        </div>
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                <button type="button" class="btn btn-primary" ng-click="vm.process()">Save Data</button>
            </div>
        </div>
        <!-- /.modal-content -->
    </div>

Java 脚本代码

  function StudentDuplicateAccountController($scope, ApiService, $routeParams, $http, $location, $timeout) {
            var vm = this;
            var page = $routeParams.page || 1;
             vm.data = [];


            vm.selectAll =function(){
              angular.forEach(vm.data, function(data){
                if (data.selected) {
                  data.selected = false;
                } else {
                  data.selected=true;
                }
              });
            }


            vm.selectedUsers = [];


            vm.process = function() {
              vm.selectedUsers.splice(0, vm.selectedUsers.length);
              vm.data.forEach(function(studentData){
                if(studentData.selected) {
                    vm.selectedUsers.push(studentData);
                }
              })
                console.log("selectedUsers:::::::::"+JSON.stringify(vm.selectedUsers))
              if (vm.selectedUsers.length === 0) {
                  toastr.info('Selected atleast one record.', null, {
                          timeOut: 3000
                  })
                  return;
              } else {
                ApiService.save()
// some code
              }
            }

【问题讨论】:

    标签: javascript angularjs html checkbox modal-dialog


    【解决方案1】:

    将模态 html 更改为

       <tr ng-repeat="x in vm.data" ng-if="x.selected">
                            <td>{{x.name}}</td>
                            <td>{{x.mobileNumber}}</td>
                        </tr>
    

    禁用进程按钮

    创建一个类似的函数

    vm.isContainsSelected = function(){
    return vm.data.some(function(d){return d.selected})
    }
    

    然后在处理按钮上

     <button ng-disabled="!vm.isContainsSelected()" >proceess</button>
    

    【讨论】:

    • 感谢它的工作。并想知道如何限制进程按钮使用至少一个选中的复选框。
    • 当我选择一个或多个复选框时,这不起作用,但如果我没有选择任何复选框,那么它会起作用。但我需要反过来。
    猜你喜欢
    • 2014-08-16
    • 2012-02-01
    • 2012-07-03
    • 2017-03-09
    • 2021-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-07
    相关资源
    最近更新 更多