微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 隐藏字段上的Angular 2表单验证

我有一个银行贷款申请,其中包含很多输入字段,其中一些是隐藏的(隐藏字段是根据一组条件动态显示的).例如,如果选择选项1,则会显示隐藏字段,并隐藏其他一些字段.如果选择选项2,某些字段将显示,其他字段将隐藏.在表单的最后我有一个意味着按钮将被禁用,直到整个表单有效,但我现在的问题是隐藏字段也得到验证,因此表单将永远无效.有没有办法告诉角度如果隐藏它们不验证字段?

隐藏字段的方式如下例所示:

<form [formGroup]="form">

<select formControlName="loanType"> 
 <option value="0">Car loan</option>
 <option value="1">Student loan</option>
</select>

<div *ngIf="loanType === 0"> 
 <input type="text" required>
</div>

<div *ngIf="loanType === 1">
 <input type="text" required>
</div>

<button type="submit" [disabled]="!form.isValid">

</form>

解决方法:

更新:

在做了一些研究后,我发现我需要使用FormGroup.addControl()和FormGroup.removeControl()动态更新formGroup.

我读到的文章得出的结论是:
https://github.com/angular/angular/issues/7970(检查卡拉斯答案)

https://scotch.io/tutorials/how-to-implement-conditional-validation-in-angular-2-model-driven-forms

只是举例说明我的代码对于具有相同问题的下一个人的样子:

if (this.loanTypeId === 1) {
   this.form.addControl('name', new FormControl("", Validators.required));
} else {
   this.form.removeControl('name')
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐