【问题标题】:Conditional Validation in AngularJSAngularJS 中的条件验证
【发布时间】:2013-06-20 15:22:28
【问题描述】:

仅当满足特定条件时,我才需要对表单字段应用验证。假设我有这样的表格:

<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 是否为此提供任何类型的验证?

【问题讨论】:

  • 小心,我刚刚读到关于纽约的监护权争夺战,父亲怀了孩子(怀孕了)。谈论一个角落案例!或者,圆形,我想......
  • 您可以查看我的详细答案。 stackoverflow.com/questions/45498708/…

标签: angularjs angularjs-directive


【解决方案1】:

嗯,实际上我刚刚找到了执行此操作的指令。我只需要添加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>

【讨论】:

  • 嗨@jacoviza,我正在尝试执行相同类型的实现,例如,有两个按钮(保存和提交),单击提交时需要对文本框进行必填字段验证,不是点击保存。你能分享一些想法吗?
【解决方案2】:

是的,看看ng-required。文档不好,但该链接有一些。

这里还有一个question,与您之前提出的问题相似。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多