角度2反应式表单触发验证提交

角度2反应式表单触发验证提交,第1张

概述有没有一种办法,即所提供的反应式表格的所有验证者都可以在提交时触发,而不仅仅是通过“肮脏”和“触摸”事件? 原因是我们有一个非常大的形式,不表示是否需要一个字段,用户可能会错过一些所需的控制,所以在提交时,预计所有无效的字段都被错过由最终用户将显示. 我已经尝试使用该表格作为“触摸” FormGroup.markAsTouched(true); 它的工作,所以我也尝试标记为“脏” FormGrou @H_419_0@有没有一种办法,即所提供的反应式表格的所有验证者都可以在提交时触发,而不仅仅是通过“肮脏”和“触摸”事件?

原因是我们有一个非常大的形式,不表示是否需要一个字段,用户可能会错过一些所需的控制,所以在提交时,预计所有无效的字段都被错过由最终用户将显示.

我已经尝试使用该表格作为“触摸”

FormGroup.markAstouched(true);

它的工作,所以我也尝试标记为“脏”

FormGroup.markAsDirty(true);

但是班级的CSS仍然是“原始的”,

有没有办法从组件手动触发,我尝试谷歌没有用,谢谢你提前!

UPDATE

我已经通过迭代FormGroup.controls并将其标记为“脏”,使其工作,但是有一个“标准”的方式来做到这一点.

解决方法 我今天没有找到一个标准的方法(角4.0.0),所以我受到OP(markAsDirty递归)提到的解决方案的启发,并在这里分享记录:
let markAsDirty = function(group: FormGroup | FormArray) {  group.markAsDirty()  for (let i in group.controls) {    if (group.controls[i] instanceof FormControl) {      group.controls[i].markAsDirty();    } else {      markAsDirty(group.controls[i]);    }   } }

希望会有用!

总结

以上是内存溢出为你收集整理的角度2反应式表单触发验证提交全部内容,希望文章能够帮你解决角度2反应式表单触发验证提交所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1143547.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存