如何使用 angularjs 计算选中/未选中复选框项的数量?
我的html
<label class="col-xs-5 pull-left" style="font-weight: bold; margin-left: 4px; margin-top: -17px;" >You have choose <font size="3" color="green">{{checkedResult}}</font> Customer(s)</label>
<tr ng-repeat="item in $data " >
<td width="30" style="text-align: left" header="\'smsChkbx\'">
<label>
<input type="checkbox" class="ace" name="someList[]" value="{{item.somename}}" ng-model="checkboxes.items[item.somename]" />
复选框功能
$scope.$watch('checkboxes.items', function(values) {
if (!$scope.mydata) {
return;
}
var checked = 0,
unchecked = 0,
total = $scope.mydata.length;
angular.forEach($scope.mydata, function(item) {
checked += ($scope.checkboxesSms.items[item.somename]) || 0;
unchecked += (!$scope.checkboxesSms.items[item.somename]) || 0;
});
if ((unchecked == 0) || (checked == 0)) {
$scope.checkboxes.checked = (checked == total);
}
**if(checked != 0 && unchecked != 0){
$scope.checkedResult++;
}**
$scope.tableParamsSms.reload();
console.log($scope.checkedResult);
console.log((checked != 0 && unchecked != 0));
angular.element(document.getElementById("select_Sms")).prop("indeterminate", (checked != 0 && unchecked != 0));
}, true);
当我第一次检查时正确计数,问题是当我取消选中选中的时它也会计数
还想在通过多个检查选项检查时进行计数
最佳答案
您应该在复选框中单击一下并触发一个事件。
例如:
ng-click="selectOrDeselect(item)"
然后在该函数中执行类似的操作以将其添加到列表中或将其从列表中删除。
$scope.selectOrDeselect = function(item) {
var index = $scope.selectedItems.indexOf(item);
if (index === -1) {
$scope.selectedItems.push(item);
} else {
$scope.selectedItems.splice(index, 1);
}
};
然后有一个var count = $scope.selectedItems.length
关于javascript - Angularjs - 复选框 - 计算多个选定/未选定的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36913271/