【发布时间】:2019-04-22 09:38:34
【问题描述】:
有什么方法可以根据需求验证部分表单吗?
构建: 角 7,Clarity
实际上,我有一个表单clrForm,其中包含一些字段和两个按钮。 字段如下:
- 字段 1:名称
- 字段 2:网址
- 字段 3:日期
按钮如下:
- 按钮 1:验证
- 按钮 2:提交
案例 1:点击Submit 按钮时,验证完整的表单。而且运行良好。
案例2:点击Verify。仅验证字段 1 和 2。我不知道该怎么做?
请帮忙看看怎么做...代码示例取自Clarity form page。
谢谢
更新:
表单 HTML
<form class="clr-form clr-form-compact" clrForm #submitData="ngForm" (ngSubmit)="submitProfileData(submitData)">
<clr-input-container >
<label for="forname" class="clr-control-label required">Name</label>
<input clrInput type="text" class="clr-input" [(ngModel)]="formData.name" name="lblName" #lblName="ngModel" id="forname" maxlength="50" placeholder="Name" required>
<clr-control-error class="clr-col-12 clr-col-md-8" *clrIfError="'required'">Name is required.</clr-control-error>
</clr-input-container>
<clr-input-container >
<label for="url" class="clr-control-label clr-col-12 clr-col-md-4 required">URL</label>
<input clrInput type="text" class="clr-input" [(ngModel)]="formData.url" name="lblUrl" #lblUrl="ngModel" id="url" placeholder="URL" [pattern]="SOME_URL_PATTERN" required>
<clr-control-error class="clr-col-12 clr-col-md-8" *clrIfError="'required'">URL is reqyured.</clr-control-error>
<clr-control-error class="clr-col-12 clr-col-md-8" *clrIfError="'pattern'" >Invalid URL given.</clr-control-error>
</clr-input-container>
<div class="clr-col-lg-12 clr-col-md-12 clr-col-12 text-right py-1 pr-0">
<div class="btn btn-primary" (click)="verifyTenantData()">Verify</div><!-- HERE I DON'T KNOW HOW TO VALIDATE PARTIAL FORM-->
</div>
<clr-date-container>
<label for="startdate" class="clr-control-label clr-col-12 required">Date</label>
<input type="date" id="startdate" [(ngModel)]="formData.startDate" name="lblStartDt" #lblStartDt="ngModel" placeholder="Date" [(clrDate)]="formData.isoStartDate" required>
<clr-control-error class="clr-col-12 clr-col-md-8" *clrIfError="'required'">Date is require</clr-control-error>
</clr-date-container>
<form>
<div class="clr-row ">
<div class="clr-col-lg-12 text-center my-2">
<button type="button" class="btn btn-primary" (click)="submitData.ngSubmit.emit()">Submit</button>
</div>
</div>
组件
submitData(submitData) {
if (submitData.valid) {
//SUBMIT DATA CODE
} else {
this.clrForm.markAsDirty();
}
}
【问题讨论】:
-
你熟悉 Angular 的响应式表单的工作原理吗?
-
@wentjun 是的,我是。但这与清晰度表单验证有关。它有自己的标签来显示验证。如果我错了,请纠正我...
-
我明白了.. 但是您指的是“验证”按钮吗?还是“提交”按钮?因此,您希望在单击按钮时出现来自
<clr-control-error>的验证文本? -
提交按钮将验证完整的表单,但验证按钮仅适用于字段 1 和 & 2。让我更正我的问题。
-
您也可以包含您的代码吗?我需要看看你到目前为止写了什么,以及你的表单组/表单控件名称
标签: angular forms validation vmware-clarity