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

标签 javascript angularjs checkbox

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

<强> Working Demo

任何人都可以给我一些解决方案

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);
        }
    };
});

关于javascript - 获取数组中选定的复选框值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25202105/

相关文章:

javascript - 从 71 种可能性中生成一个随机短语

javascript - 添加 n 个数组的值

javascript - 动态删除复选框的问题。

javascript - Angular 选择框在第一次更改时不起作用

ruby-on-rails - 在Rails中将link_to转换为AngularJS

php - 如何从表单插入多个值,包括多个复选框

javascript - 在javascript中遍历递归关系矩阵

javascript - D3 给我一个 d3.selectAll() 语法错误

javascript - Angular 1.5.0。通过 ocLazyLoad 使用 UI GRID 重新加载页面时,根模板会重复。 $$animateJs 未定义

javascript - 我如何更正这个 jquery/js 复选框代码