【发布时间】:2020-01-25 18:12:13
【问题描述】:
我正在对下拉列表进行验证。我有三个下拉菜单。 1)第一个和第二个下拉菜单是强制性的,但是对于第三个下拉菜单,我需要为它编写一个逻辑 如果值为“是”,则逻辑适用于第二个下拉列表,那么第三个下拉列表应标记为强制,否则不需要。 2)我有重置按钮,它应该重置值。 我试过但找不到灵魂。 请问有人可以帮我吗?在此先感谢..
export class AppComponent {
PepPartner : "";
PepBlacklisted : "";
Blacklist : "";
public formGroup: FormGroup;
constructor(private fb: FormBuilder) {}
screenofAML() {
let self = this;
this.formGroup = this.fb.group({
PepPartner :['',Validators.required],
PepBlacklisted :['',Validators.required],
Blacklist :['',Validators.required],
});
}
validateForm() {
if (this.formGroup.invalid) {
this.formGroup.get('PepPartner').markAsTouched();
this.formGroup.get('PepBlacklisted').markAsTouched();
this.formGroup.get('Blacklist').markAsTouched();
return;
}
else {
const dataObj = {
PepPartner:this.formGroup.get('PepPartner').value,
PepBlacklisted:this.formGroup.get('PepBlacklisted').value,
Blacklist :this.formGroup.get('Blacklist').value,
}
}
}
onResetClick() {
this.PepPartner = "";
this. PepBlacklisted = "";
this.Blacklist ="";
}
}
<div class ="space">
<mat-form-field>
<mat-label>Is this partner a PEP?</mat-label>
<mat-error *ngIf="formGroup.get('PepPartner').hasError('required')">
PEP Partner is required
</mat-error>
<mat-select disableRipple [(ngModel)]="PepPartner" formControlName="PepPartner">
<mat-option ></mat-option>
<mat-option value="1">Yes</mat-option>
<mat-option value="2">No</mat-option>
</mat-select>
</mat-form-field>
<mat-form-field>
<mat-label>Does this partner blacklisted</mat-label>
<mat-error *ngIf="formGroup.get('PepBlacklisted').hasError('required')">
Partner blacklisted is required
</mat-error>
<mat-select disableRipple [(ngModel)]="PepBlacklisted" formControlName="PepBlacklisted" >
<mat-option ></mat-option>
<mat-option value="1">Yes</mat-option>
<mat-option value="2">No</mat-option>
</mat-select>
</mat-form-field>
<mat-form-field >
<mat-error *ngIf="formGroup.get('Blacklist').hasError('required')">
Blacklisted is required
</mat-error>
<input matInput placeholder="Blacklist(s)" [(ngModel)]="Blacklist" formControlName="Blacklist" >
</mat-form-field>
<div class="button-position">
<div class="text-right pr-0 pb-2">
<div class="btn-group">
<button type="button" id="button1" mat-raised-button class="text-uppercase app-btn app-btn-
primary-border app-color-primary"
(click)="validateForm()" >Save</button>
<button type="button" id="button2" mat-raised-button class="text-uppercase app-btn app-btn-
primary-border app-color-primary"
(click)="onResetClick()">Clear</button>
</div>
</div>
</div>
【问题讨论】:
-
如果值为“yes”,这不是很清楚,但在您的 stackbliz 中,您有人名和 [i] 值,它们是数字。一个简单的选择是使用 *ngIf 并添加所需的标签使第三个下拉列表不可见。
-
@ Farasi .. 感谢您的回复.. 我现在已经编辑了我的代码。那么你能告诉我解决方案如何做到这一点..提前谢谢
-
你能把这个叠起来吗?
标签: angular validation