gpt4 book ai didi

forms - Angular2 - 如何将表单上的 `touched` 属性设置为 true

转载 作者:太空狗 更新时间:2023-10-29 16:56:57 25 4
gpt4 key购买 nike

我的组件中有一个响应式表单,我想设置 touched每个输入的属性等于 true .我当前的代码执行此操作,但会抛出错误 Cannot set property touched of #<AbstractControl> which has only a getter :

addressForm: FormGroup;

...

this.addressForm = this._fb.group({
street: ["", [<any>Validators.required]],
city: ["", [<any>Validators.required]],
state: ["", [<any>Validators.required]],
zipCode: ["", [<any>Validators.required]],
country: ["", [<any>Validators.required]]
});

...

for (var key in this.addressForm.controls) {
this.addressForm.controls[key].touched = true;
}

如何设置 touched true 的每个输入值?

最佳答案

有一个非常简单的方法可以做到这一点:markAsTouched。在表单组上使用它应该足够了。

this.addressForm.markAsTouched()

如果您出于某种原因想要手动标记所有控件,它们本身就有这种方法可用。

markAsTouched 是所有表单元素继承自AbstractControl 的方法。出于好奇,您可能想访问 @angular/forms/src/model.d.ts 声明文件以查找表单对象的一些更有趣的方法。或者访问 documentation .

关于forms - Angular2 - 如何将表单上的 `touched` 属性设置为 true,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42399462/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com