Angular响应式表单自定义验证:在第一次更改时不起作用
创始人
2024-10-30 08:30:17
0

在Angular中,我们可以使用Reactive Forms来创建动态表单,并为其提供自定义验证。然而,有时在第一次更改验证以后,验证器可能不会更新。这可能是因为表单控件的值仍然保持不变的缘故。

要解决这个问题,我们需要使用值更改的Observable,并手动调用验证函数。以下是一个解决方案的代码示例:

import { Component } from '@angular/core';
import { FormControl, FormGroup, Validators } from '@angular/forms';

@Component({
  selector: 'app-custom-validation',
  template: `
    
Password is required
Password must be at least 8 characters long
Password must contain at least one number
`, }) export class CustomValidationComponent { form = new FormGroup({ password: new FormControl('', [ Validators.required, Validators.minLength(8), Validators.pattern(/\d/), ]), }); constructor() { // subscribe to value changes and manually call validation function this.form.get('password').valueChanges.subscribe(() => { this.form.get('password').updateValueAndValidity(); }); } }

在代码中,我们订阅了密码控件的值更改Observable,并在每次更改时手动调用了控件的updateValueAndValidity方法。这将强制表单重新计算验证器并更新表单状态。现在,第一次更改验证器后,表单将更新状态并按预期工作。

相关内容

热门资讯

四分钟了解!雀神广东麻将系统调... 四分钟了解!雀神广东麻将系统调好(辅助挂)确实是真的有挂(有挂教程)-哔哩哔哩;是一款可以让一直输的...
透视软件!花城牌舍有没有挂(辅... 透视软件!花城牌舍有没有挂(辅助挂)原来真的有挂(有挂透明挂)-哔哩哔哩;亲,其实确实真的有挂(需添...
两分钟了解!云扑克辅助器是真是... 两分钟了解!云扑克辅助器是真是假(辅助挂)透视辅助((2022已更新))(哔哩哔哩)1、云扑克ai辅...
记者爆料!德州ai机器人辅助!... 记者爆料!德州ai机器人辅助!原来真的有挂((2021已更新))(哔哩哔哩);是一款可以让一直输的玩...
六分钟了解!搜圈麻将假不假(辅... 六分钟了解!搜圈麻将假不假(辅助挂)的确真的有挂(真是有挂)-哔哩哔哩;亲真的是有正版授权,小编(透...
玩家必知教程!雀神广东麻将挂件... 玩家必知教程!雀神广东麻将挂件(辅助挂)果真是真的有挂(有挂秘籍)-哔哩哔哩;雀神广东麻将挂件是一款...
透视好友!aapoker辅助软... 【福星临门,好运相随】;透视好友!aapoker辅助软件!确实是真的有挂((2025已更新))(哔哩...
6分钟普及!wpk辅助器是真的... 6分钟普及!wpk辅助器是真的假的(透视)透视辅助((2024已更新))(哔哩哔哩);致您一封信;亲...
实测揭晓!电娱游戏平台有挂嘛(... 实测揭晓!电娱游戏平台有挂嘛(辅助挂)其实真的有挂(有挂总结)-哔哩哔哩关于电娱游戏平台有挂嘛的基本...
必备辅助推荐!云南广电全民雀神... 必备辅助推荐!云南广电全民雀神老是输(辅助挂)其实是真的有挂(真是有挂)-哔哩哔哩;云南广电全民雀神...