取消选中 n 后限制取消选中复选框 - Angularjs
Restricting unchecking checkboxes after n are unchecked - Angularjs
如果至少三个未选中,我想限制用户取消选中复选框。如果已经取消选中任何三个复选框,他将无法再取消选中。
这是代码。
你可以这样做,
<label ng-repeat="option in permissions.headers">
<input ng-click="checkPermission()" type="checkbox"
ng-model="option.selected"
ng-checked="option.selected">
{{ option.title }}
</label>
$scope.checkPermission=function(option){
var lengthTemp=($filter('filter')($scope.permissions.headers,{'selected':true})).length;
if(lengthTemp<3) {
option.selected=!option.selected;
}
};
}
$filter('filter')($scope.permissions.headers,{'selected':true})).length 将过滤那些选项permissions.headers 选中了哪个复选框。
希望这就是您要找的。
你可以这样做
<input ng-change="!option.selected && permissions.headers | filter: {selected: true}).length<=3 && option.selected= true" type="checkbox"
ng-model="option.selected"
ng-checked="option.selected"/>
{{ option.title }}
或
您可以将相同的逻辑移动到控制器方法。
标记
ng-change="changeCheckbox(option)
控制器
$scope.changeCheckbox = function (option)
{
if(!option.selected && $scope.$eval('permissions.headers | filter: {selected: true}).length<=3'))
option.selected = false;
}
如果至少三个未选中,我想限制用户取消选中复选框。如果已经取消选中任何三个复选框,他将无法再取消选中。
这是代码。
你可以这样做,
<label ng-repeat="option in permissions.headers">
<input ng-click="checkPermission()" type="checkbox"
ng-model="option.selected"
ng-checked="option.selected">
{{ option.title }}
</label>
$scope.checkPermission=function(option){
var lengthTemp=($filter('filter')($scope.permissions.headers,{'selected':true})).length;
if(lengthTemp<3) {
option.selected=!option.selected;
}
};
}
$filter('filter')($scope.permissions.headers,{'selected':true})).length 将过滤那些选项permissions.headers 选中了哪个复选框。
希望这就是您要找的。
你可以这样做
<input ng-change="!option.selected && permissions.headers | filter: {selected: true}).length<=3 && option.selected= true" type="checkbox"
ng-model="option.selected"
ng-checked="option.selected"/>
{{ option.title }}
或
您可以将相同的逻辑移动到控制器方法。
标记
ng-change="changeCheckbox(option)
控制器
$scope.changeCheckbox = function (option)
{
if(!option.selected && $scope.$eval('permissions.headers | filter: {selected: true}).length<=3'))
option.selected = false;
}