2017-09-13 5 views
0

私は3つのフィールド形式 - 名、姓、ID番号 - を設定して、ユーザーが2つの名前フィールドにデータを入力する必要があります。フォームが有効で「提出可能」になるためのID番号を入力します。角2+反応性フォームのバリデーション - これかそれか

<button type="submit" class="btn btn-success" 
[disabled]="submitPending || person.invalid"> 
Submit<span *ngIf="submitPending" class="glyphicon glyphicon-refresh glyphicon-refresh-animate"></span> 
</button> 
:この検証は、フォーム/ページがロードされたときに実行され、「失敗」を生成しながら

私のコードは、ボタンを提出(「OK未」)はそれにもかかわらず、アクティブである

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

です

どこが間違っていますか?

答えて

1

あなたの返信文は後ろにありますか?

返信nullすべてOKの場合はエラー、OKでない場合はエラーです。

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'プロパティは、エラーコレクション内のエラーの名前になります。

関連する問題