繁体   English   中英

获取数组中的选定复选框值

[英]get selected checkbox value in array

我创建了一个应用程序,用于获取所有复选框值,该值被检查到数组中,没有任何循环,但是在同时检查和取消检查之后,我在数组中得到错误的数据

工作演示

谁能给我一些解决方案

var app = angular.module('checkbox', []);

app.controller('homeCtrl', function ($scope) {
    $scope.selected = [];
    $scope.array_ = angular.copy($scope.array);
    $scope.list = [{
        "id": 1,
            "value": "apple",
            "checked": false
    }, {
        "id": 3,
            "value": "orange",
            "checked": false
    }, {
        "id": 5,
            "value": "pear",
            "checked": false
    }];
    $scope.checkedOrNot = function (id, isChecked, index) {
        if (isChecked) {
            $scope.selected.push(id);
        } else {
            $scope.selected.splice(index, 1);
        }
    }
});

请在这里查看http://jsfiddle.net/7L6beac6/2/

您需要在选定数组中找到复​​选框的索引,然后使用该索引而不是收割器中的复选框的索引将其删除

var app = angular.module('checkbox', []);

app.controller('homeCtrl', function ($scope) {
    $scope.selected = [];
    $scope.array_ = angular.copy($scope.array);
    $scope.list = [{
        "id": 1,
            "value": "apple",
            "checked": false
    }, {
        "id": 3,
            "value": "orange",
            "checked": false
    }, {
        "id": 5,
            "value": "pear",
            "checked": false
    }];
    $scope.checkedOrNot = function (id, isChecked, index) {
        console.log("index:" + index + " " + isChecked);

        if (isChecked) {
            $scope.selected.push(id);
        } else {
            var _index = $scope.selected.indexOf(id);
            $scope.selected.splice(_index, 1);
        }
    };
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM