我正在尝试为模板驱动的表单创建自定义验证器,其中如果一个字段填充到另一个字段中则是必需的,但是如果第一个字段为空,则也不需要第二个。
按照文档中的(打字稿)示例构建自定义验证程序指令,我可以使该指令在某个字段上运行,并将其名称传递给另一个。现在这是我的问题...
如果在字段1中输入了一个值,并且检查字段2为空,如何在字段2上设置“无效”?(我知道我可以访问其AbstractControl)。
如果我自己在字段2上设置了“无效”,是否需要在字段2上使用单独的验证器以在填写无效状态时将其删除?
还是在触发字段1的验证器时(应该如何)在字段2上添加内置的“必需”验证器?
非常感谢您的指导!
我认为您无需自定义验证器就可以实现您想要的。
下面的代码来自模板驱动的表单-required
将第二个字段上的验证器指令绑定到第一个字段中的ngModel
值。因此,当第一个字段具有值时,这里将条件验证应用于第二个字段。
First: <input type="text" name="first" [(ngModel)]="theFirst" #first="ngModel" >
Second: <input type="text" ngModel [required]="theFirst ? true : null " #second="ngModel" name="second"/>
<div *ngIf="second.errors">
<span [hidden]="!second.errors.required">Second is required</span>
</div>
关于条件验证绑定的进一步讨论在这里。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句