2017-03-28 1 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'을 사용하고 regexp를 적용 할 수 있습니다. – Alex

+2

Angular 4에는 이메일 유효성 검사기가 내장되어 있습니다. https://github.com/angular/angular/commit/d69717cf79c3141cdbd69b538a3aaded55a8f43b – DeborahK

+0

왜 'Validators.required'가 두 개입니까? – 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

' 이메일이'이 아닌 경우 span을 md-hint로 바꿉니다. –

관련 문제