只有在满足特定条件的情况下,我才需要在表单字段上应用验证。说我有这样的表格:
<div ng-controller="MyController">
<form name="myForm">
<div>
<div class="" ng-class="{error: myForm.gender.$invalid}">
Gender:
</div>
Male <input type="radio" name="gender" value="M" ng-model="survey.gender" required/>
Female <input type="radio" name="gender" value="F" ng-model="survey.gender" required/>
</div>
<div ng-show="survey.gender == 'F'">
<div class="">
Are you pregnant?
</div>
Yes <input type="radio" name="pregnant" value="Y" ng-model="survey.pregnant"/>
No <input type="radio" name="pregnant" value="N" ng-model="survey.pregnant"/>
</div>
</form>
</div>
我想仅在用户选择女性时才提出怀疑问题。 Angular是否为此提供了任何类型的验证?
答案 0 :(得分:16)
嗯,实际上我刚刚找到了执行此操作的指令。我只需要添加ng-required="survey.gender == 'F'"
。
代码现在看起来像这样:
<div ng-controller="MyController">
<form name="myForm">
<div>
<div class="" ng-class="{error: myForm.gender.$invalid}">
Gender:
</div>
Male <input type="radio" name="gender" value="M" ng-model="survey.gender" required/>
Female <input type="radio" name="gender" value="F" ng-model="survey.gender" required/>
</div>
<div ng-show="survey.gender == 'F'">
<div class="">
Are you pregnant?
</div>
Yes <input type="radio" name="pregnant" value="Y" ng-model="survey.pregnant" ng-required="survey.gender == 'F'">
No <input type="radio" name="pregnant" value="N" ng-model="survey.pregnant" ng-required="survey.gender == 'F'">
</div>
</form>
</div>
答案 1 :(得分:3)
是的,请看ng-required。文档不好,但有一些链接。
此处还有一个question与你早期的问题类似。