AngularJS为每个循环设置手动输入到无效内部

时间:2015-09-22 13:06:28

标签: angularjs

我想使用AngularJS手动将输入更改为$invalid。我找到了good example如何做到这一点。

但在我的情况下,我在循环中有一些表单,当我这样做时,我得到以下错误:

See example

Cannot set property 'check' of undefined

无法找到解决方法。

1 个答案:

答案 0 :(得分:-1)

您的代码

 <div ng-repeat="form in forms">
          <form name="myForm">
            <input name="ccNumber" ng-model="ccNumber" data-ng-change="check()">
            <span ng-show="myForm.ccNumber.$error.minLength">A cc number should be minimum 10 chars</span>
            <span ng-show="myForm.ccNumber.$error.maxLength">A cc number should be maximum 13 chars</span>

         </form>
         Form is valid is {{myForm.$valid}}
         <br/><br/>

         </div>

查看您的<input name="ccNumber" ng-model="ccNumber" data-ng-change="check()">输入字段name属性是否相同,因为每个循环都会创建一个具有相同name属性的新输入。因此,角度无法识别单击的点击事件。

因此,您需要将序列name设置为输入字段,如下面的代码

  <div ng-repeat="form in forms">
          <form name="myForm">
            <input name="ccNumber{{$index}}" ng-model="ccNumber" data-ng-change="check()">
            <span ng-show="myForm.ccNumber{{$index}}.$error.minLength">A cc number should be minimum 10 chars</span>
            <span ng-show="myForm.ccNumber{{$index}}.$error.maxLength">A cc number should be maximum 13 chars</span>

         </form>
         Form is valid is {{myForm.$valid}}
         <br/><br/>

         </div>