2016-03-14 2 views
0

У меня есть набор флажков в форме. Как проверить форму, когда проверяется хотя бы один из них?Angula.JS: проверка ячейки флажка

<div class="col-lg-9 col-md-9 col-sm-9 col-xs-9" ng-init="row.user_input = {}"> 
    <div ng-repeat="value in row.allowed_values" class="checkbox-inline"> 
     <input type="checkbox" 
       name="{{row.field}}" 
       value="{{value}}" 
       ng-model="row.user_input[value]" 
       ng-required="{{row.mandatory_field && !someSelected(row.user_input)}}">{{value | capitalize}} 
    </div> 
</div> 

Here вся куча деталей.

ответ

1

Заканчивать эту работу plunkr: https://plnkr.co/edit/5H73o70p4ONz4jxGiY4e?p=preview

$scope.input={ 
    values: { 
     'a': false, 
     'b': false, 
     'c': false 
    } 
    }; 
    $scope.someSelected = function(values) { 
    for(var value in values) { 
     if(values[value]) { 
     return true; 
     } 
    } 
    return false; 
    } 

Вы можете сохранить введенные пользователем в качестве объекта, а не массив, чтобы проверить, по крайней мере, один флажок. На поле зрения:

<form name="checkboxTest"> 
    <div ng-repeat="(key,value) in input.values"> 
     <input type="checkbox" 
      name="checkbox" 
      value="{{value}}" 
      ng-model="input.values[key]" 
      ng-required="!someSelected(input.values)"> 
     {{key}} 
    </div> 
    <pre> 
    {{input}} 
    </pre> 
    <button type="submit" ng-disabled="!checkboxTest.$valid">Submit</button> 
</form> 
+0

ok spotted глупая опечатка, которая сводила меня с ума ... Спасибо. – ftabaro