Angular - 如何在更新单个输入时停止触发所有表单字段验证
Angular - How to stop trigger all form field validation when update a single input
我有一个包含以下输入的表单:名字、姓氏、用户名和密码。
我可以使用按钮生成随机密码,在控件中使用 set/patchValue 将触发所有验证(名字、姓氏和用户名),但我只想为我的输入触发验证(密码)
this.userDetailsFormGroup
.get('password')
?.patchValue(usersData.data.toString());
我该怎么做?
确保您的按钮具有 type="button"
属性(当然除了保存按钮),否则它们将触发提交事件,因为按钮的默认 type
是 submit
。这就是为什么您会在所有字段上收到验证错误。
另一个注意事项:当你更新值时(通过获取 firstName
控件并在其上设置原始值),你可以使用 setValue
而不是 patchValue
。 patchValue
在您设置“复杂”值并且仅部分更新它时很有用。例如,您可以这样做:
this.userDetailsFormGroup.patchValue({ firstName: usersData.data.toString() });
我有一个包含以下输入的表单:名字、姓氏、用户名和密码。
我可以使用按钮生成随机密码,在控件中使用 set/patchValue 将触发所有验证(名字、姓氏和用户名),但我只想为我的输入触发验证(密码)
this.userDetailsFormGroup
.get('password')
?.patchValue(usersData.data.toString());
我该怎么做?
确保您的按钮具有 type="button"
属性(当然除了保存按钮),否则它们将触发提交事件,因为按钮的默认 type
是 submit
。这就是为什么您会在所有字段上收到验证错误。
另一个注意事项:当你更新值时(通过获取 firstName
控件并在其上设置原始值),你可以使用 setValue
而不是 patchValue
。 patchValue
在您设置“复杂”值并且仅部分更新它时很有用。例如,您可以这样做:
this.userDetailsFormGroup.patchValue({ firstName: usersData.data.toString() });