【问题标题】:How to validate email address inside md-input in Angular 2如何在 Angular 2 中验证 md-input 中的电子邮件地址
【发布时间】:2017-08-21 13:34:59
【问题描述】:

我有这个 Angular 2 表单,里面有 md-input 元素:

<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 也会出现。 我该怎么办?

【问题讨论】:

  • 您可以使用Validators.pattern 并应用一些正则表达式。
  • Angular 4 有一个新的内置电子邮件验证器:github.com/angular/angular/commit/…
  • 为什么会有两个Validators.required

标签: validation angular angular-material


【解决方案1】:

您可以通过指令使用电子邮件验证器。见EmailValidator类。

通过NG_VALIDATORS 绑定将电子邮件验证器添加到标有电子邮件属性的控件的指令。


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

该指令也可在包ng2-validators 中使用。

【讨论】:

  • 我如何将错误验证的条件放入 md-hint 的 ngIf 条件中?
  • &lt;span *ngIf="email.hasError('normalEmailRule')"&gt;Is not a email&lt;/span&gt;,只需将 span 替换为 md-hint
猜你喜欢
  • 2017-09-01
  • 2017-10-03
  • 2016-06-20
  • 2021-06-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多