角度2+反应形式验证 - 这个或那

角度2+反应形式验证 - 这个或那

问题描述:

我有一个3字段的形式 - 名字,姓氏,身份证号码 - 我想要设置,以便用户必须输入数据到两个名称字段或输入表格的ID号码以使其有效并“可提交”。角度2+反应形式验证 - 这个或那

我的代码是

ngOnInit() { 
    this.person = this.fb.group({ 
     'fname': [], 
     'lname': [], 
     'certID': [] 
    },{ 
     validator:(formgroup:FormGroup)=>{ 
     return this.validateInput(formgroup); 
     } 
     } 
    ); 
    } 

    validateInput(formgroup:FormGroup){ 
    if(formgroup.controls["fname"].value && formgroup.controls["lname"].value || formgroup.controls["certID"].value){ 
     console.log('OK'); 
     return {validateInputData:true}; 
     } 
     else { 
     console.log('Not OK'); 
     return null; 
     } 
    } 

虽然这验证当表单/页面加载运行,并生成一个“失败”(“不正常”),提交按钮是仍然活跃:

<button type="submit" class="btn btn-success" 
[disabled]="submitPending || person.invalid"> 
Submit<span *ngIf="submitPending" class="glyphicon glyphicon-refresh glyphicon-refresh-animate"></span> 
</button> 

我哪里错了?

您的退货声明是否向后?

返回null当一切正常时,错误,当它不正确。

if((formgroup.controls["fname"].value && formgroup.controls["lname"].value) 
       || formgroup.controls["certID"].value){ 
    console.log('OK'); 
    return null; 
    } 
    else { 
    console.log('Not OK'); 
    return {validateInputData: true}; 
    } 

'validateInputData'属性将成为错误集合中错误的名称。