【发布时间】:2018-04-30 23:21:12
【问题描述】:
我有一个小问题。 我有一个显示 div 的复选框。我可以从 6 个不同的复选框中选择要显示的 div。
检查复选框时,我会显示div并发送到服务器选中div的名称。
$scope.savesGraphUserDetail = [];
$scope.addRemoveUserChart = function(checked, value) {
if (checked) {
$scope.savesGraphUserDetail.push(value);
var config = { headers: { "Content-Type": "application/x-www-form-urlencoded", "X-HTTP-Method-Override": "PUT" } };
var data = {graphsConfig: $scope.savesGraphUserDetail};
$http
.post(serviceBase + "blabla", data, config)
.success(function(data, status, headers, config) {
})
.error(function(data, status, header, config) {
});
}else {
var index = $scope.savesGraphUserDetail.indexOf(value);
$scope.savesGraphUserDetail.splice(index);
var config = { headers: { "Content-Type": "application/x-www-form-urlencoded", "X-HTTP-Method-Override": "PUT" } };
var data = {graphsConfig: $scope.savesGraphUserDetail};
$http
.post(serviceBase + "blabla", data, config)
.success(function(data, status, headers, config) {
})
.error(function(data, status, header, config) {
});
}
这没关系, 但是当我取消选中复选框时会出现问题,因为如果我按此顺序检查 首先单击“A”,第二个“C”和第三个“D”我像这样推入我的数组
myArray = ["A", "C", "D"]
如果我以相反的顺序取消选中, 首先取消选中“D”
myArray = ["A", "C"]
第二次取消选中“C”
myArray = ["A"]
最后一个“A”
myArray = []
这是完美的,但如果我在取消选中复选框时更改顺序
myArray = ["A", "C", "D"]
如果我首先取消选中“C”,我的数组删除“C”和“D”,我明白了
myArray = ["A"]
如果我首先取消选中“A”,我的数组会删除“A”和“C”和“D”,我会得到这个
myArray = []
如何删除唯一未选中的项目?
【问题讨论】:
标签: javascript arrays angularjs string checkbox