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

前端之家收集整理的这篇文章主要介绍了角度2反应式表单触发验证提交前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有没有一种办法,即所提供的反应式表格的所有验证者都可以在提交时触发,而不仅仅是通过“肮脏”和“触摸”事件?

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

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

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]);
    }
   }
 }

希望会有用!

猜你在找的HTML相关文章