javascript - ngRequired 未在表单字段上设置 $error 属性

标签 javascript angularjs validation

我有一个控件,该控件根据表单上另一个字段的值有条件地可见并且有条件地需要。

<div class="form-group" ng-hide="vm.registration.typeId !== 2">
  <div class="row">
    <div class="col-md-offset-1 col-md-10">
      <label class='col-md-3' for="dischargeYear">Discharge Year*</label>
      <div class="col-md-7">
        <input type="text" id="dischargeYear" name="dischargeYear" 
               class="form-control large-text-form main-input"
               ng-model="vm.registration.dischargeYear"
               ng-required="vm.registration.typeId !== 2"
               ng-class="{'has-error': form.dischargeYear.$touched && form.dischargeYear.$invalid}">
      </div>
    </div>
  </div>
</div>

但是,即使 $validatorsformdischargeYear 上具有 required 验证器,它$error 中从未出现错误。同样有趣的是我有另一个可以工作的控件,唯一的区别是 ng-required;另一个控件只是标记required

有人见过这个吗?

最佳答案

最后,答案是在周围的 div 上使用 ng-if ,并在 上使用 required 属性输入。这是有效的,因为它会在不需要时从 DOM 中删除该元素,并在需要时重新编译它。

<div class="form-group" ng-if="vm.registration.typeId === 2">
  <div class="row">
    <div class="col-md-offset-1 col-md-10">
      <label class='col-md-3' for="dischargeYear">Discharge Year*</label>
      <div class="col-md-7">
        <input type="text" id="dischargeYear" name="dischargeYear" 
               class="form-control large-text-form main-input"
               ng-model="vm.registration.dischargeYear"
               required
               ng-class="{'has-error': form.dischargeYear.$touched && form.dischargeYear.$invalid}">
      </div>
    </div>
  </div>
</div>

这导致 $validators$error 被填充并且标签被弹出。

关于javascript - ngRequired 未在表单字段上设置 $error 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55500657/

相关文章:

javascript - 将两个复选框绑定(bind)在一起

javascript - Nodejs帖子不断加载

javascript - 在客户端还是服务器端生成 UI?

javascript - 验证 ASP 经典 DDL

iphone - 验证/检查 iPhone 上是否已安装配置文件

javascript - JavaScript 中的后缀和前缀递增

javascript - Protractor:获取 DOM 元素的底层 JS 对象

AngularJS Controller 提交表单

javascript - 计算文本区域行数

javascript - 如何使用javascript验证动态生成的输入框值