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方法。这将强制表单重新计算验证器并更新表单状态。现在,第一次更改验证器后,表单将更新状态并按预期工作。

相关内容

热门资讯

实测必看"约战平台辅... 实测必看"约战平台辅助"开挂(透视)werplan怎么作弊(有挂总结);1、点击下载安装,插件透视分...
透视黑科技"天天填大... 透视黑科技"天天填大坑辅助器免费下载"开挂(透视)pokemmo手机版脚本(发现有挂);1、很好的天...
盘点几款"中至小程序... 盘点几款"中至小程序破檞"开挂(透视)wpk作弊最怕三个东西(有挂存在)相信很多朋友都在电脑上玩过吧...
终于懂了"poker... 终于懂了"pokermaster辅助器"开挂(透视)we poker免费辅助器(有挂方式);1、超多...
科普分享"微信三哥玩... 科普分享"微信三哥玩辅助器"开挂(透视)德州真人透视脚本(有挂方略);微信三哥玩辅助器简单的透视挂控...
一分钟揭秘"新西部微... 一分钟揭秘"新西部微信辅助"开挂(透视)wepoker代打辅助(有挂分享);是一项软件透视开挂的竞技...
一分钟了解"德州扑克... 一分钟了解"德州扑克游戏辅助"开挂(透视)wepoker可以免费玩吗(有挂头条);德州扑克游戏辅助是...
玩家必用"微乐麻将自... 玩家必用"微乐麻将自建房app"开挂(透视)hh poker辅助有用吗(有挂辅助);是一款益智类棋牌...
透视好友"新众乐辅助... 透视好友"新众乐辅助"开挂(透视)智星菠萝透视(有挂功能);免费下载原版,在软件透视开挂可以安装到哦...
透视挂"雀姬手机辅助... 透视挂"雀姬手机辅助脚本"开挂(透视)wepoker手机版辅助(果真有挂);1. ai辅助创建新账号...