2015-10-20 50 views
0

我有html模板,在其中有複選框輸入,並且至少選擇了其中的一個組來通過所需的驗證。如何使用角實現複選框組需要驗證?

HTML: 

<input class="cb" type="checkbox" value="1" ng-model="form.cb.one" 
     ng-required="showRequired" ng-change="handleClick()">one</input> 
<input class="cb" type="checkbox" value="2" ng-model="form.cb.two" 
     ng-required="showRequired" ng-change="handleClick()">two</input>... 

JS: 

$scope.showRequired=true; 
$scope.form.cb = {one:false, two:true, three:false} 
$scope.handleChange = function(){ 
$scope.showRequired = !($scope.chkCollection.one || $scope.chkCollection.two || $scope.chkCollection.three); 
}; 

我正打算改變對複選框的點擊驗證NG要求的屬性,但因爲它是一個模板,它可能在其他地方使用相同的變量名($ scope.showRequired)在頁面上,這可能會影響其他必填字段。如何解決這個問題呢?謝謝

回答

0

是否需要檢查一個form.cb組?

<input class="cb" type="checkbox" value="1" ng-model="form.cb.one" 
    ng-required="showRequiredCheckbox()" ng-change="handleClick()">one</input> 
<input class="cb" type="checkbox" value="2" ng-model="form.cb.two" 
    ng-required="showRequiredCheckbox()" ng-change="handleClick()">two</input>... 

和JS:

$scope.showRequired = !($scope.chkCollection.one || $scope.chkCollection.two || $scope.chkCollection.three); 
function showRequiredCheckbox(){ 
    return $scope.showRequired && !($scope.form.cb.one 
      || $scope.form.cb.two|| $scope.form.cb.three); 
} 
+0

至少其中的一組中選擇 如果你需要做更多的驗證,你可以在你的showRequired線,其中考慮到showRequired後做通過所需的驗證。 – Steve