首页 文章

Angular 2或4 Reactive表单集验证取决于另一个字段值

提问于
浏览
3

我想在另一个字段被选中的情况下,以某种形式设置某些字段的验证 .
我做错了什么吗?

ngOnInit() {
    this.martialForm = this.fb.group({
        'maritalStatus': [this.model.maritalStatus, [Validators.required]],
        'spouseTitle': [this.spouseModel.title, null]
    },{
         validator: this.validateIsSpouse
    })
}

validateIsSpouse(group: FormGroup) {
    if(this.model.maritalStatus == "01"){
        group.controls['spouseTitle'].setErrors({ isRequired: true });
    }

    return null;
}

1 回答

  • 5

    自定义验证函数在import语句后立即写入,代码和验证器应按以下方式编写:

    // import statement
    
    function validateIsSpouse(group: FormGroup) {
      let maritalStatus = group.get('maritalStatus').value;
      if(maritalStatus == "01"){
        retun { isRequired: true };
      }
      return null;
    }
    
    // @Component
    
    export class MyClass implements OnInit {
    
      constructor(private fb: FormBuilder) {}
    
      ngOnInit() {
        this.martialForm = this.fb.group({
          'maritalStatus': [this.model.maritalStatus, [Validators.required]],
          'spouseTitle': [this.spouseModel.title, null]
        },{ validator: validateIsSpouse });
      }
    
    }
    

相关问题