来自TS的反应式表单验证

时间:2019-10-21 14:06:54

标签: angular

我正在尝试使用类型集中验证消息。 假设表单是原始的或未修改的,即当用户提交表单但不触摸该字段时,这是预设的。我只想显示姓名,而电子邮件仅是邮件

我添加了提交的布尔值以弄清楚,但是ngIf总是评估为false

validationCondition(type: string, controlName: string): boolean {
     return this.myForm.get(`${controlName}`).hasError(`${type}`) &&(this.myForm.get(`${controlName}`).touched || this.myForm.get(`${controlName}`).dirty);
  }  

在这里我们可以做些什么,但我不知道该怎么处理才能与提交一起工作

链接:https://stackblitz.com/edit/angular-tiey4d

我希望看到用户提交表单而不触摸任何字段时,姓名是必需的,而电子邮件是必需的。我也想在输入字段或从字段离开时看到验证消息。

2 个答案:

答案 0 :(得分:1)

只需onSubmit

 onSubmit() { 
    if (!this.myForm.valid) //if not valid
    {
       this.submitted = true  // because you put the condition "if submitted"
       this.myForm.markAllAsTouched() //mark all the controls as touched
    }else
    {
       console.log(this.myForm.value)
    }
  }

答案 1 :(得分:0)

您可以检查表单中根obj中的此布尔值是否有错误。

this.myForm.invalid