gpt4 book ai didi

Angular,如何为两个字段中的任何一个设置验证应在 react 形式方法中进行验证

转载 作者:行者123 更新时间:2023-12-02 12:10:36 24 4
gpt4 key购买 nike

我正在尝试设置用户表单验证,用户必须输入两个字段之一:手机字段或电子邮件字段

添加访客 react 表单 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

添加 guest 初始化:

this.addGuestForm = new FormGroup({
'name': new FormControl(null, Validators.required),
'email': new FormControl(null, Validators.email),
'mobile': new FormControl(null)
})

有人可以帮忙吗?

最佳答案

您可以使用表单构建器并提供自定义验证,例如:

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};
}
});

此外,您还可以检查电子邮件字段的正则表达式定义一个变量 regexPattern 用于电子邮件模式检查并在下面的自定义验证器 if 条件中使用

regexPattern.test(emailCtrl.value)

关于Angular,如何为两个字段中的任何一个设置验证应在 react 形式方法中进行验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47808461/

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