dcpartners
dcpartners

Reputation: 5456

How to make a validation working for at least one checkbox being selected in Ionic Checkbox

I have a running a Ionic framework and trying to validate at least 1 checkbox being selected and not sure how to this. The "required" attribute seems only for required all of check boxes to be checked.

<label class="item item-input">routines</label>
        <ion-checkbox name="routine" ng-repeat="item in routines"
                      ng-model="item.checked" 
                      ng-checked="item.checked"
                      ng-required="true">
          {{ item.name }}
        </ion-checkbox>

I'm appreciated your feedback

Thanks

Upvotes: 1

Views: 768

Answers (1)

the_mahasagar
the_mahasagar

Reputation: 1201

Controller :

.controller('AppCtrl', function($scope) {    
$scope.Routines = [
  {name:'Routines1', selected:false},
  {name:'Routines2', selected:false},
  {name:'Routines3', selected:false},
  {name:'Routines4', selected:false},
  {name:'Routines5', selected:false},
  {name:'Routines6', selected:false},
  {name:'Routines7', selected:false}
];

$scope.selectedRoutines = [];
$scope.updateRoutines = function(item){
  console.log("array : " + JSON.stringify(item.selected));
  if(item.selected && ($scope.selectedRoutines.indexOf(item.name) < 0)){
    $scope.selectedRoutines.push(item.name);
    console.log("added : " + $scope.selectedRoutines);
  }else{
    $scope.selectedRoutines.splice($scope.selectedRoutines.indexOf(item.name), 1);
    console.log("remove : " + $scope.selectedRoutines);
  }
 };
});

Html

<div class="item-accordion"
         ng-repeat="item in Routines track by $index">
      <ion-item class="item item-checkbox">
        <label class="checkbox">
          <input type="checkbox" ng-model="item.selected" ng-change="updateRoutines(item)">
        </label>
        {{item.name}}
      </ion-item>
    </div>

to validate : u can check size of $scope.selectedRoutines

hope this helps in someway..!

Upvotes: 1

Related Questions