【发布时间】:2020-08-16 13:53:48
【问题描述】:
下面的角反应形式。有 2 个按钮,一个提交和一个获取详细信息。
工作 提交按钮有表单验证,只有手机号码是强制性的。这已经在组件中使用 required 实现了。
我该怎么做
另一个按钮 Fetch,我需要验证 2 个字段 Id & date 是强制性的,并在 <span> 中显示错误消息,这不起作用
表格
<form role="form" [formGroup]="pForm" >
<div class="row display-flex">
<div class="col-lg-3 col-md-4 col-sm-6">
<label>Id </label>
<input class="form-control form-control-sm" formControlName="id" type="number" />
<span *ngIf="submitted && f.errors && f.errors.idRequired"
class="tooltiptext">{{'Id is required'}}</span>
</div>
<div class="col-lg-3 col-md-4 col-sm-6">
<label> Date </label>
<p-calendar type="number" dateFormat="dd-mm-yy" formControlName="eDate"
monthNavigator="true" appendTo="body" yearNavigator="true"
yearRange="1930:2030" >
</p-calendar>
<span *ngIf="submitted && f.errors && f.errors.eDateRequired"
class="tooltiptext">{{'Id is required'}}</span>
</div>
<div class="col-lg-3 col-md-4 col-sm-6">
<button class="btn btn-sm btn-primary bw" (click)="fetch()"
translate>traveler.getDetails</button>
</div>
<div class="col-lg-2 col-md-2 col-sm-3">
<label>Mobile <span class="mdtr">*</span></label>
<input type="text" numeric class="form-control form-control-sm" [readonly] = "gsm" formControlName="mobileNo" />
<span *ngIf="submitted && f.mobileNo.errors" class="tooltiptext" >{{'Mobile is required'}}</span>
</div>
</div>
<button class="btn btn-sm btn-primary" type="submit" (click)="saveForm()">
Save
</button>
</form>
这里表单初始化,getDetail() 我尝试将其他2个字段设置为必填,但没有成功
this.pForm = this.fb.group({
id: [null],
eDate: [null],
mobileNo: ["", Validators.required]
})
get f() {
return this.pForm.controls;
}
getDetail() {
this.submitted = true;
this.pForm.setValidators({
idRequired: true,
eDateRequired: true
});
}
saveForm() {
this.submitted = true;
if (this.pForm.invalid) {
Swal.fire("mandatory fiels are missing);
return;
}
}
【问题讨论】:
标签: typescript angular8 angular-reactive-forms