I have the following in my form in-order to validate, what should happen is when user clicks citizen radio buttons 'sno' is displayed/hidden according to yes/no. But I need to remove the 'required' attribute of 'sno' when user clicks "No" simultanouely, in-order to prevent validating 'sno'.
<input type="radio" ng-model="citizen" value="Yes" citizen-check>Yes
<input type="radio" ng-model="citizen" value="No">No
<div ng-show='enableNo()'>
<div id="view">
<input type="text" id="sno" name="sno" required>
</div>
</div>
<div ng-hide='enableNo()'>
<div id="view">
<input type="text" id="pno" name="pno" required>
</div>
</div>
Inside controller I have the following for show/hide feature,
$scope.enableNo= function()
{
$log.log('enableNo called');
if($scope.citizen == 'Yes')
{
return true;
}
else
{
return false;
}
}
How do I write a directive to remove 'required' attribute of 'sno'?
Use ngRequired
.
ngRequired
adds required
attribute and required
validation constraint to the element when the ngRequired expression evaluates to true.
<!-- adds 'required' attribute when ngRequired expression evaluates to true -->
<input type="text" id="sno" name="sno" ng-required="citizen == 'Yes'">
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With