angular - 验证 ngfor 中的输入
问题描述
您可以在下面找到一个表单的 html,其中包含一个名为“caseName”的输入字段和任意数量的名为“exhibitName”的输入字段。通过单击“添加新展览”按钮,新展览将添加到“newCaseExhibits”,从而将新输入字段添加到表单中。
<form #newCaseForm="ngForm">
<div id="newCaseMenu">
<div id="newCaseHeader">
<b>New Case</b>
</div>
<div id="newCaseInnerContainer">
<div class="attrValueContainer">
<span class="attr-name">Name:</span>
<input class="attr-value edit" type="text" name="name"
required [(ngModel)]="newCase.name" #caseName="ngModel"/>
</div>
<div *ngIf="(caseName.invalid || nameAlreadyInUse(caseName.model) ) && (caseName.dirty || caseName.touched)"
class="attrValueContainer">
<span class="attr-name"></span>
<div *ngIf="caseName.invalid">
A case name is required.
</div>
<div *ngIf="nameAlreadyInUse(caseName.model)">
This case name already exists.
</div>
</div>
<div *ngFor="let exhibit of newCaseExhibits; let i = index" >
<div class="exhibitContainer">
<span class="attr-name">Exhibit:</span>
<input class="attr-value" type="text" [(ngModel)]="exhibit.name"
required name="{{i}}exhibit" #exhibitName="ngModel">
</div>
<div *ngIf="(exhibitName.invalid || exhibitNameAlreadyInUse(exhibitName.model) ) && (exhibitName.dirty || exhibitName.touched))"
class="attrValueContainer">
<span class="attr-name"></span>
<div *ngIf="exhibitName.invalid">
A name is required
</div>
<div *ngIf="exhibitNameAlreadyInUse(exhibitName.model)">
There is already another exhibit with this name.
</div>
</div>
</div>
<div class="button extraMarginTop" (click)="onBtnAddExhibitToNewCaseClicked()">
Add new exhibit
</div><br>
<button class="bottomRight"
[class.disabled]="newCaseForm.invalid || nameAlreadyInUse(caseName.model)"
[disabled]="newCaseForm.invalid || nameAlreadyInUse(caseName.model)"
(click)="onBtnCreateNewCaseClicked()">
Create case
</button>
</div>
</div>
</form>
现在,每个展览的输入字段都在单独验证。但是如何在“创建案例”按钮上检查此验证状态,以便用户无法创建具有无效展览名称的案例?
解决方案
推荐阅读
- typescript - .d.ts 文件中的响应
- java - 手动将节点添加到列表与使用 addNode 方法有什么区别?
- php - 你如何只允许使用 PHP 函数删除字符串中的第一个标签和所有其他标签?
- pandas - Pandas 合并点赞 %
- python - 百分之六十的时间,我的刮刀每次都能正常工作
- javascript - 如何在事件中一次一个地循环浏览元素列表?
- excel - 使用vba打开word
- reactjs - 如何在一个 Redux store 下设置 2 个 React 组件
- css - @media system.media 是一个命名空间
- python - Azure函数错误线程中没有当前事件循环