3 validation typescript angular angular4-forms
我正在尝试设置用户表单验证,用户必须输入两个字段之一,移动或电子邮件字段
添加访客反应表单 Html:
<form class="new_guest" id="new_guest" [formGroup]="addGuestForm" (ngSubmit)="onSubmit()">
<div class="form-group">
<input placeholder="Enter guest name" class="add-guests form-control ui-autocomplete-input" type="text" formControlName="name"
id="guest_name" autocomplete="off">
</div>
<div class="form-group">
<input placeholder="Enter guest email" class="add-guests form-control ui-autocomplete-input" type="text" formControlName="email"
id="guest_email" autocomplete="off">
</div>
<div class="form-group">
<input placeholder="Mobile Number, If any" class="add-guests form-control ui-autocomplete-input" type="text" formControlName="mobile"
id="guest_mobile" autocomplete="off">
</div>
<input type="submit" class="btn btn-default btn-block" id="add_guest" value="ADD GUEST" [disabled]="!addGuestForm.valid">
</form
Run Code Online (Sandbox Code Playgroud)
添加来宾初始化:
this.addGuestForm = new FormGroup({
'name': new FormControl(null, Validators.required),
'email': new FormControl(null, Validators.email),
'mobile': new FormControl(null)
})
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮忙吗?
您可以使用表单构建器并提供自定义验证,例如:
this.addGuestForm = this.formBuilder.group({
'name': new FormControl(null, Validators.required),
'email': '',
'mobile': ''
}, {
validator: (formControl) => {
var emailCtrl = formControl.controls.email;
var mobileCtrl = formControl.controls.mobile;
if (emailCtrl != undefined && mobileCtrl != undefined)
if(!(emailCtrl.value.length || mobileCtrl.value.length ))
return {invalid: true};
}
});
Run Code Online (Sandbox Code Playgroud)
此外,您还可以检查电子邮件字段的正则表达式定义一个变量 regexPattern 用于电子邮件模式检查并在自定义验证器中使用下面的条件
regexPattern.test(emailCtrl.value)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5837 次 |
最近记录: |