我有一个包含以下输入的表单:名、姓、用户名和密码。
我可以使用按钮生成随机密码,使用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() });