【发布时间】:2019-09-10 14:32:40
【问题描述】:
我有一个角度模板驱动的表单。我想重置所有验证错误并使其保持不变而不重置表单。 如何以角度做到这一点? 我试过以下方法
onAdd(form: NgForm) {
form.form.markAsPristine();
form.form.markAsUntouched();
}
但这不起作用。
链接:- https://stackblitz.com/edit/angular-ezixd4
当前行为:-
当我单击提交空表单时,所有字段都标记为错误,当我单击add 时,它会添加字段,但上述功能不会删除错误消息。
预期行为:-
当我单击提交空表单时,所有字段都标记为错误,当我单击 add 时,它会添加该字段,它应该删除表单上(或添加的文件中)的错误消息。
在此表单中,我正在使用添加按钮添加输入字段,并且我想在用户有机会与表单交互之前清除所有错误消息。
【问题讨论】:
-
用
@ViewChild()试试这个,你会发现更多关于给定link的信息 -
因此,如果您的表单无效(由于控件中的无效值)并且您将其设为原始但未删除无效值,那么您的表单是否仍然无效。
-
我试过
@ViewChild(),但还是不行。 -
@xyz 是的,但这就是为什么我想让它保持不变,如果用户再次点击提交时使用无效值,错误将再次出现。
-
我想要这种行为的真正原因是我通过
add button动态添加输入字段,因为新添加的输入字段将为空,然后在用户有机会交互之前显示错误用它。