gpt4 book ai didi

angular - 如何使用 Validators 类在 Angular2 中显示电子邮件验证的不同验证消息?

转载 作者:行者123 更新时间:2023-12-05 07:35:12 24 4
gpt4 key购买 nike

我正在使用 FormGroupFormBuilderValidators 类来验证 Angular2 应用程序中的表单。

这就是我定义电子邮件和密码验证所需的验证规则的方式:-

export class LoginComponent implements OnInit {
loginFormGroup:FormGroup;
adminLoginmodel = new Admin('', '', '', 'Emailsss','Passwordsss');

constructor(
private route: ActivatedRoute,
private router: Router,
private _adminLogin: AdminLoginService,
fb: FormBuilder
){
this.loginFormGroup = fb.group({
'email' : [null, Validators.compose([Validators.required, Validators.email])],
'password': [null, Validators.required]
});
}
}

代码 Validators.compose([Validators.required, Validators.email]) 检查电子邮件字段是否为空以及提供的字符串是否为有效电子邮件。

但是,我不知道如何在不同的情况下显示不同的验证信息。说

  1. 如果电子邮件字段为空,我需要显示“请提供电子邮件地址”
  2. 如果提供的电子邮件无效,那么我需要显示“提供的电子邮件不是有效的电子邮件”。

这是我在 html 中显示验证消息的方式:-

<div class="input-group input-group-lg" [ngClass]="{'has-error':!loginFormGroup.controls['email'].valid && loginFormGroup.controls['email'].touched}">
<span class="input-group-addon"><i class="glyphicon glyphicon-user red"></i></span>
<input type="text" class="form-control" placeholder="Email" id="email" name="email" [formControl]="loginFormGroup.controls['email']" [(ngModel)]="adminLoginmodel.email"/>
</div>
<div class="alert alert-danger" *ngIf="!loginFormGroup.controls['email'].valid">You must add an email.</div>

如何在不同的情况下显示不同的消息?

最佳答案

import { Component } from '@angular/core';
import {FormControl, Validators} from '@angular/forms';

@Component({
selector: 'my-app',
template: `
<input [formControl]="ctrl" />

<div *ngIf="ctrl.errors?.email">
Provided email is not a valid email
</div>

<div *ngIf="ctrl.errors?.required">
Please provide an email address
</div>
`,
styleUrls: [ './app.component.css' ]
})
export class AppComponent {
ctrl = new FormControl(null, Validators.compose([Validators.email, Validators.required]));
}

Live demo

评论中的讨论证明了这个具体问题的答案是:

<div class="alert alert-danger" *ngIf="loginFormGroup.controls['email'].hasError('email')">Provide a valid email.</div>
<div class="alert alert-danger" *ngIf="loginFormGroup.controls['email'].hasError('required')">Please provide an email address</div>

关于angular - 如何使用 Validators 类在 Angular2 中显示电子邮件验证的不同验证消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49689689/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com