我想使用AngularJS手动将输入更改为$invalid
。我找到了good example如何做到这一点。
但在我的情况下,我在循环中有一些表单,当我这样做时,我得到以下错误:
Cannot set property 'check' of undefined
无法找到解决方法。
答案 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>