我无法使用this.stockForm.reset()清除;所以我用它来清除提交后的数据:
clearall(): void {
this.isEditMode = false;
this.stockForm.reset({
sku: '',
productName: '',
counted: '',
});
Object.keys(this.stockForm.controls).forEach(key => {
this.stockForm.get(key).setErrors(null);
});
}
当我再次单击提交按钮时,我无法获得验证;获取默认值;因此,请让我知道在清除表单后如何再次进行验证。
答案 0 :(得分:0)
嗨,您只需要像这样休息一下表格即可:
clearall(): void {
this.isEditMode = false;
this.stockForm.reset();
Object.keys(this.stockForm.controls).forEach(key => {
this.stockForm.get(key).setErrors(null);
});
}
答案 1 :(得分:0)
您可以在重置表单时尝试使用Validators.required吗?
clearall(): void {
this.isEditMode = false;
this.stockForm.reset({
sku: ['', Validators.required],
productName: ['', Validators.required],
counted: ['', Validators.required],
});
Object.keys(this.stockForm.controls).forEach(key => {
this.stockForm.get(key).setErrors(null);
});
}
希望有帮助!干杯!
请检查此示例=> https://stackblitz.com/edit/angular-reactive-forms-lgguij
答案 2 :(得分:0)
重置表单后,您将通过调用setErrors(null)手动运行验证。 setErrors(null)表示您将form属性设置为有效,因此不会收到任何验证消息。
删除以下代码后,它将开始工作
Object.keys(this.stockForm.controls).forEach(key => {
this.stockForm.get(key).setErrors(null);
});