2017-03-28 5 views
1

内の電子メールアドレスを検証し、私は内部のMD-入力要素と、このAngular2フォームを持っている:Angular2:MD-入力

<form noValidate (ngSubmit)="onSubmit(resetPasswFg)" [formGroup]="resetPasswFg" style="width:400px;border:1px solid black; "> 
    <table style="width:400px;"> 
    <tr> 
     <td> 
     <md-input class="input" mdInput placeholder="Email" type="email" formControlName="email"> 
      <md-hint class="input_error" *ngIf="resetPasswFg.get('email').hasError('required') && resetPasswFg.get('email').touched"> 
      Email required 
      </md-hint> 
     </md-input> 
     </td> 
    </tr> 
<!-- Other elements --> 
</form> 

、これはコンポーネント内の私のバリデータです:

ngOnInit() { 
    this.resetPasswFg = new FormGroup({ 
     email: new FormControl('', [Validators.required, Validators.required ]) 
    }) 
} 

、電子メールの場合フィールドがポピュレータでない場合は、md-hintが正しく表示されます。今度は、md-inputに電子メールアドレスが含まれていない場合でも、md-hintが表示されます。どのようにできるのか?

+1

'Validators.pattern'を使用して正規表現を適用することができます。 – Alex

+2

Angular 4には新しい電子メールバリデータが組み込まれています:https://github.com/angular/angular/commit/d69717cf79c3141cdbd69b538a3aaded55a8f43b – DeborahK

+0

「Validators.required」はなぜ2つありますか? – Edric

答えて

2

電子メールバリデーター経由で使用できます。クラスEmailValidatorを参照してください。

NG_VALIDATORSバインディングを使用して、電子メール属性でマークされたコントロールに電子メールバリデータを追加する指示。


<md-input class="input" mdInput placeholder="Email" type="email" formControlName="email" email> 

ディレクティブは、パッケージng2-validatorsでもご覧になれます。

+0

md-hintのngIf条件の中で間違った検証の条件をどのように置くのですか? – giozh

+0

'電子メールではない'、スパンをmd-hintに置き換えてください –

関連する問題