2015-10-17 10 views
5

Bir formda görüntülenen bir dizi JSON nesnesi var. Bir formun, tüm formun geçerli olması için en az bir onay kutusu seçmesi gereken form doğrulama çalışması olmasını isterim.AngularJS Form Doğrulama için en az 1 onay kutusu nasıl gerekir?

ng-required'un kullanılabildiğini biliyorum, ancak sahip olduğum uygulama ile, geçerli olması için bunların hepsinin seçilmesi gerektiği anlamına gelir.

index.html:

<div ng-repeat="item in volunteerOptions"> 
    <label class="checkbox"><input type="checkbox" value="" data-ng-model="item.selected" ng-required="true">{{ item.content }}</label> 
</div> 

<button type="submit" class="btn btn-success" ng-disabled="!memberRegistrationForm.$valid">Submit</button> 

controller.js

$scope.volunteerOptions = [ 
     { content : 'Content 1', selected : false }, 
     { content : 'Content 2', selected : false }, 
     { content : 'Content 3', selected : false }, 
     { content : 'Content 4', selected : false }, 
]; 

Ben mümkün olacaktır nasıl bir fikir İşte

var bugüne kadar kodudur Bu davranışa ulaşmak için?

cevap

17

Başka bir özellik özelliğini ekleyebilir ve selected öğesinin true olup olmadığını kontrol etmek için array.some kullanabilirsiniz. Daha sonra bu özellik özelliğini ng-required'a verin.

$scope.isOptionsRequired = function(){ 
    return !$scope.volunteerOptions.some(function(options){ 
    return options.selected; 
    }); 
} 

<input type="checkbox" value="" data-ng-model="item.selected" ng-required="isOptionsRequired()"> 
+0

Teşekkürler bu harika. – Actively

+0

Bu iyi çalışıyor. Ancak onay kutularının altındaki hata mesajının nasıl gösterileceği. Bunu kullanıyorum - '

Select any Item.
' bu hata mesajı iyi çalışıyor, ancak onay kutusu adı özelliğinde 'item_id 'i uyguladıktan sonra. Herhangi birini kontrol ettiğimde hepsini kontrol ettim. Lütfen bana yardım et... – Chinmay235