首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Formbuilder嵌套验证

Formbuilder嵌套验证
EN

Stack Overflow用户
提问于 2020-07-27 10:35:37
回答 2查看 121关注 0票数 1

我在一个表单生成器中嵌套了一个表单生成器。

我只想验证name控件每个middleNamelastNamename控件,但是我似乎无法获得我的salesForm表单组的name控件。

我已经试过get f() { return this.salesForm.name.controls; }了,但是它不起作用。

代码语言:javascript
复制
this.salesForm = this.fb.group({
    id: ['', Validators.required],
    name: this.fb.group({
        firstName: ['', Validators.required],
        middleName: ['', Validators.required],
        lastName: ['', Validators.required],
    }),
    email: ['', [Validators.email, Validators.required]],
    address: ['', Validators.required],
    contactNo: ['', Validators.required],
});

get f() { return this.salesForm.controls; }

这是我的HTML文件。

代码语言:javascript
复制
<div class="form-row" formGroupName="name">

    <div class="form-group col-md-4">
        <label>First Name*</label>
        <input type="text" class="form-control" formControlName="firstName"
            [ngClass]="{ 'is-invalid': submitted && g.firstName.errors }">
        <!-- <div *ngIf="submitted && g.firstName?.errors" class="invalid-feedback">
                <div *ngIf="g.firstName?.errors.required">First Name is required</div>
            </div> -->
    </div>

    <div class="form-group col-md-4">
        <label>Middle Name*</label>
        <input type="text" class="form-control" formControlName="middleName"
            [ngClass]="{ 'is-invalid': submitted && f.middleName?.errors }">
        <div *ngIf="submitted && f.middleName?.errors" class="invalid-feedback">
            <div *ngIf="f.middleName.errors?.required">Middle Name is required</div>
        </div>
    </div>

    <div class="form-group col-md-4">
        <label>Last Name*</label>
        <input type="text" class="form-control" formControlName="lastName"
            [ngClass]="{ 'is-invalid': submitted && f.lastName?.errors }">
        <div *ngIf="submitted && f.lastName?.errors" class="invalid-feedback">
            <div *ngIf="f.lastName?.errors.required">Last Name is required</div>
        </div>
    </div>
</div>
EN

回答 2

Stack Overflow用户

发布于 2020-07-27 10:51:05

代码语言:javascript
复制
get f() {
    return (this.salesForm.controls.name as FormGroup).controls;
}

您必须像上面那样更新您的f()方法。

同样,在您的html中,您有一个拼写错误:

g.firstName? -> f.firstName?

票数 2
EN

Stack Overflow用户

发布于 2020-07-27 10:59:07

我通过访问formbuilder中的formbuilder找到了答案:

代码语言:javascript
复制
get g() { return (this.salesForm.get('name') as FormGroup).controls; }
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63107919

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档