angular7+ng-zorro 表单验证失效

发布于 2022-09-11 17:18:41 字数 834 浏览 14 评论 0

问题描述

model中嵌套表单,新建打开时,直接点击确定,没有显示错误提示。是dirty属性一开始就为false

问题出现的环境背景及自己尝试过哪些方法

相关代码

// 请把代码文本粘贴到下方(请勿用图片代替代码)
// 提交新建修改
submitForm(): void{

for (let key in this.validateForm.controls) {
  this.validateForm.controls[ key ].markAsPristine();
  this.validateForm.controls[ key ].updateValueAndValidity();
}
console.log(this.validateForm.get('name').dirty);

}
ngOnInit() {

this.validateForm = this.fb.group({
  name : [null, [ Validators.required ]],
  price : [null, [ Validators.required ]],
  arr: [null,[ Validators.required ]],
  time: [null,[ Validators.required ]],
  remark: [null]
});

}

你期待的结果是什么?实际看到的错误信息又是什么?

clipboard.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

岁吢 2022-09-18 17:18:42

我也遇到了一样的问题,但是写的代码和博主的一样,但是form表单还是无效。想问问这个问题到底是哪里出错啦?谢谢

温柔女人霸气范 2022-09-18 17:18:42

今天突然灵光乍现,发现是提交时循环formControl的时候写错了一个地方,正确代码为

for (let key in this.validateForm.controls) {
   this.validateForm.controls[ key ].markAsDirty();  //不做任何操作也将每一个formControl视为修改过
   this.validateForm.controls[ key ].updateValueAndValidity();
}

但是新手需要注意的问题是,还得加上对validateForm.valid的判断,即使表单验证提示错误,后续写的提交代码还是会执行

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文