【发布时间】:2020-11-03 19:00:50
【问题描述】:
在 HTML 中,我有一个 (change)="limitUser($event)" 函数。在打字稿中,我有一个 for 循环,它遍历每个元素并检查值是否小于 10。如果超过 10,则设置 inValid = true。
在 HTML 中,我所有的表单字段都将值设置为 true。我只希望将值大于 10 的表单字段设置为 true。
HTML 代码:
<div *ngFor="p of data; let i = index">
<label>p.name{{i}}</label>
<input type="text" class="form-control" (change)="limitUser($event)" name="p.name{{i}}" [(ngModel)]="p.usage" id="p.name">
<div class="danger" *ngIf="inValid">
Please enter number smaller than 10
</div>
</div>
在打字稿中:
limitUser(event){
for (let i = 0; i < this.data.length; i ++) {
if (this.data[i].usage = 0 || this.data[i].usage = null || this.data[i].usage = ""){
this.data[i].usage = 0;
}
if (this.data[i].usage > 10){
this.inValid = true;
}
但inValid = true 应用于所有动态表单字段。怎样才能把它只放在值大于10的字段上。
【问题讨论】:
-
您的 HTML 无效,请调整。
-
我已经关闭了标签。但除此之外,它是一个有效的 HTML 代码,因为它运行良好。它只是没有正确应用验证
input 的三个属性缺少右引号。
是的,我关闭了那些。谢谢你的意见。我只是输入代码没有复制它。但是你现在能弄清楚这个问题吗?
问题是你只有一个全局标志。您的每个数据项都需要一个“无效”标志。
标签: html angular typescript validation angular8