我有一种表单,需要将字段设置为有效或无效,因为我想编辑用户,但按钮保持禁用状态
edit.component
ngOnInit() {
this.getForm();
this.getRole();
console.log(this.formGroup.valid)
}
getForm() {
this.formGroup = this.formBuilder.group({
name: ['', Validators.required],
label: ['', Validators.required],
});
}
当我要进行页面编辑时,我希望使按钮无效,我需要将表单设置为无效
<button type="submit" mat-button color="primary" [disabled]="!formGroup.valid">Alterar</button>
例如
if(user) {
this.formGroup (invalid)
} else {
this.formGroup (valid)
}
这是我要编辑项目的页面,但是即使填写了字段,表单组还是无效的,为什么?
答案 0 :(得分:0)
您在HTML中所做的操作是正确的。
也许最好将其设置为[disabled]="formGroup.invalid"
。
我不理解您的示例if语句。你到底在问什么?
答案 1 :(得分:0)
HTML:
<form [formGroup]="form" fxLayout="column" fxLayoutAlign="center center" fxFlex="50">
<mat-form-field>
<input matInput placeholder="Input" formControlName="name">
</mat-form-field>
<mat-form-field>
<input matInput placeholder="Input" formControlName="label">
</mat-form-field>
<button type="submit" mat-button color="primary" [disabled]="!form.valid">Alterar</button>
</form>
TS:
form: FormGroup;
constructor(private fb: FormBuilder) {
this.form = this.fb.group({
name: ['', Validators.required],
label: ['', Validators.required],
});
}
ngOnInit() {
this.form.patchValue({
'name': 'Abhishek',
'label': 'Dubey'
});
}
我认为您无需编写if和else条件,因为如果您以正确的方式设置值,则反应形式会赋予您表单状态。