Reputation: 47
I created a form with two input repeated for X elements. Each element is required only if we put something in the other one:
My.HTML
<form ng-submit="validate();">
<div ng-reapet="elem in Myelements">
<label>{{elem.name}}</label>
<div>
New Value : <input name="value" ng-required="reason.$valid" ng-model="elem.value" />
</div>
<div>
Why : <textarea name="reason" ng-required="value.$valid" ng-model="elem.reason"/>
</div>
</div>
<input type="submit" value="Submit" />
</form>
This not working as expected. How do I make this work properly ?
EDIT The right solution for me (the accepted answer helped me)
<form ng-submit="validate();">
<div ng-reapet="elem in Myelements">
<label>{{elem.name}}</label>
<div>
New Value : <input name="value" ng-required="elem.reason" ng-model="elem.value" />
</div>
<div>
Why : <textarea name="reason" ng-required="elem.value" ng-model="elem.reason"/>
</div>
</div>
<input type="submit" value="Submit" />
</form>
Upvotes: 2
Views: 175
Reputation: 28750
Just pivot off the other inputs value
<form ng-submit="validate();">
<div ng-reapet="elem in Myelements">
<label>{{elem.name}}</label>
<div>
New Value : <input name="value" ng-required="elem.reason !== ''" ng-model="elem.value" />
</div>
<div>
Why : <textarea name="reason" ng-required="elem.value !== ''" ng-model="elem.reason"/>
</div>
</div>
<input type="submit" value="Submit" />
</form>
Upvotes: 1