フォームに表示されるJSONオブジェクトの配列があります。フォーム全体を有効にするには、ユーザーが少なくとも1つのチェックボックスを選択する必要があるフォーム検証を機能させたいと思います。
をng-required
使用できることは知っていますが、私が持っている実装では、それを有効にするには、それらすべてを選択する必要があることを意味します。
これが私がこれまでに持っているコードです:
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 },
];
この動作をどのように達成できるかについてのアイデアはありますか?
あなたは別のスコープのプロパティを追加して使用することができますarray.some
のいずれかのかどうかを確認しselected
ますtrue
。次に、そのスコーププロパティをにフィードしますng-required
。何かのようなもの
$scope.isOptionsRequired = function(){
return !$scope.volunteerOptions.some(function(options){
return options.selected;
});
}
<input type="checkbox" value="" data-ng-model="item.selected" ng-required="isOptionsRequired()">
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加