Angular 反应式表单集和清除验证器

2024-01-06

请协助,我想删除表单中的所有验证器,请告知是否可能,如果不可能,如果您有一个包含 20 个或更多表单控件的表单组,删除验证器的更好方法是什么,请参阅下面的示例。

 ngOnInit() {
    this.exampleFormGroup = this.formBuilder.group({
     surname: ['', [Validators.required, Validators.pattern('^[\\w\\s/-/(/)]{3,50}$')]],
     initials: ['', [Validators.required, Validators.maxLength(4)]]
     });
  }

 public removeValidators() {
    this.exampleFormGroup.get('surname').clearValidators();
    this.exampleFormGroup.get('initials').clearValidators();
    this.exampleFormGroup.updateValueAndValidity();
 }

 public addValidators() { 
  this.exampleFormGroup .get('surname').setValidators([Validators.required,Validators.pattern('^[\\w\\s/-/(/)]{3,50}$')]);
  this.exampleFormGroup.get('initials').setValidators([Validators.required, Validators.maxLength(4)]);
  this.exampleFormGroup.updateValueAndValidity(); 
 }

上述方法addValidators()将添加验证器和removeValidators()执行时将删除验证器。但我遇到的问题是,我必须指定我试图清除验证器的表单控件。有没有办法做到this.exampleFormGroup.clearValidators();并再次清除表格中的所有内容 this.exampleFormGroup.setValidators()让他们回来?我知道我可能会要求独角兽,但在 formGroup 有 20 个或更多控件的情况下,清除和设置验证器可能会很痛苦,因此非常感谢有关如何处理此类情况的地图。


你可以这样做:

validationType = {
    'surname': [Validators.required, Validators.pattern('^[\\w\\s/-/(/)]{3,50}$')],
    'initials': [Validators.required, Validators.maxLength(4)]
}

ngOnInit() {
    this.exampleFormGroup = this.formBuilder.group({
        surname: ['', [Validators.required, Validators.pattern('^[\\w\\s/-/(/)]{3,50}$')]],
        initials: ['', [Validators.required, Validators.maxLength(4)]]
    });
}

    public removeValidators(form: FormGroup) {
    for (const key in form.controls) {
        form.get(key).clearValidators();
        form.get(key).updateValueAndValidity();
    }
}
     

    public addValidators(form: FormGroup) {
    for (const key in form.controls) {
        form.get(key).setValidators(this.validationType[key]);
        form.get(key).updateValueAndValidity();
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular 反应式表单集和清除验证器 的相关文章

随机推荐

  • Swift:如何对 UITableView 的 rowHeight 进行动画处理?

    我试图通过在 tableView 函数内调用 startAnimation 来对 tableViewCell 行的高度进行动画处理 func tableView tableView UITableView cellForRowAtIndex
  • Firefox 插件 CPU 使用率

    我需要在 Web 开发编码会话期间收集有关 Firefox CPU 使用情况的数据 并且我想知道是否可以监视特定 Firefox 插件的 CPU 使用情况 现在我正在使用 Windows 的 perfmon msc 但它只允许我监视整个 F
  • 匹配目录路径(不包括文件路径)的正则表达式

    我正在寻找 IIS 所需的正则表达式模式 基本上我希望它匹配任何目录路径但拒绝文件路径 我到处寻找但运气不佳 示例 匹配 directory content css 匹配 directory content css 拒绝 directory
  • 加载器在 chrome 中的同步 ajax 调用期间不工作

    加载程序在 google chrome 中的同步 异步 假 ajax 调用期间不工作 在 Firefox 和 IE 中工作正常 在我的调试测试期间 Loader 显示直到 ajax 请求开始 当请求发送到服务器时被删除或消失 我在服务器上保
  • 如何在Matlab中增量训练神经网络?

    假设我有很大的训练集 导致 Matlab 在训练时挂起 或者没有足够的内存来容纳训练集 是否可以将训练集分成几部分并逐部分训练网络 是否可以一次用一个样本 一个一个 来训练网络 您可以手动将数据集分成批次并逐一训练它们 for bn 1 n
  • Hibernate 查询获取日期记录忽略时间戳

    我在 DB Oracle 表之一中有一个时间戳列 tradedate 我使用 hibernate 作为持久层来获取数据并将其存储到数据库 我有一个要求 我需要按日期查询数据库 即 用户从 UI 传递一个日期 我需要根据该日期获取过滤后的数据
  • 如何使用 jquery html 和 php 将标签插入数据库

    我想将这些特定标签插入数据库 这是我的 HTML div div
  • OSX 上的 QT:托盘图标 - 图标停靠问题

    我的目的是创建一个没有自动显示主窗口的 QT 托盘应用程序 这个应用程序的启动是一个带有菜单的托盘图标 问题是我的停靠图标仍然显示在我的应用程序中 我的问题是 1 如何防止出现 Dock 图标 2 如果答案涉及将条目添加到生成的 pfile
  • 有没有办法将图像作为位图加载到 Glide

    我正在寻找一种使用位图作为 Glide 输入的方法 我什至不确定这是否可能 这是为了调整大小的目的 Glide 具有良好的图像缩放增强功能 问题是我的资源作为位图已经加载到内存中 我能找到的唯一解决方案是将图像存储到临时文件并将它们作为 i
  • ImportError:无法从“azure.servicebus”导入名称“ServiceBusClient”

    我想运行一个简单的 Azure 服务总线程序 我收到以下错误 ImportError cannot import name ServiceBusMessage from azure servicebus 当我在互联网上搜索时 我应该安装Az
  • 如何从倒数计时器完成方法调用另一个意图?

    我正在做 Android 测验 在我的代码中 我有倒计时器 当时间结束时 我希望下一个问题出现并且分数减少 对于分数递减 currentGame decrementScore 方法 如果我在计时器的 finish 方法中添加以下代码 它工作
  • 不存在的属性 HTML 输入字段

    将不存在的属性附加到 html 元素以便在 jquery 中使用它是一个好习惯吗 例如
  • 如何从另一个线程使用服务器更新java swing gui?

    我有一个 Java Swing 应用程序 每当传入的客户端尝试建立连接时 它都会启动一个新线程 该线程使用执行程序池来打开套接字服务器 该应用程序需要两个按钮 一个用于启动服务器 另一个用于停止服务器 我想要的是显示服务器状态 并禁用相反的
  • COM 自动化接口中允许的“out”参数类型

    我正在为应用程序实现 COM 自动化 双接口 自动化接口将从 VBScript 调用 我不太清楚该方法的参数允许使用哪些类型 我确实知道价值观基本上必须符合VARIANT 但这是否意味着每个类型的参数int必须通过一个VARIANT 或者可
  • 如何在Python中将元组的元组转换为pandas.DataFrame?

    如果问题太基本 也没有冒犯的意思 如果您需要更多信息 请与我们联系 我正在寻找一种想法 以干净 高效 Pythonic 的方式将方形元组转换为 pandas DataFrame 即来自 s 1 0 0 0 2 3 0 0 4 5 6 0 7
  • 在 Hibernate 中使用 Spring Data 查询时出现 NoViableAltException

    我正在使用指定 Spring Data 查询 Query在存储库方法上 但它抛出了NoViableAltException例外 这是我正在使用的存储库接口方法和注释 Query value SELECT one saveLine two s
  • 对 Julia 中的内存分配和垃圾收集感到困惑

    我对 Julia 中的内存分配有点困惑 我从常见问题解答中知道 http julia readthedocs org en latest manual faq 清除大变量使用的内存是通过将其设置为较小的值 例如 0 然后运行来完成的gc 但
  • Mac OS X 上带有 Cocoa WebView 的综合 Web 服务器

    我想创建一个 Webview 我可以完全控制它加载的内容 本质上 我想提供一个类的实例 它扮演 URL 中指定的各种 Web 服务器的角色 理想情况下 我会为这个 webview 提供一个委托 它会告诉委托它需要的每个 URL 并且委托将使
  • 卓:0.0.0.0/0 和 ::/0 是什么意思?

    在安全组中 我添加的每个入站端口都添加了两条规则 一条为 0 0 0 0 0 另一条为 0 它们分别是什么意思 Internet 协议版本 4 IPv4 中的默认路由被指定 作为 CIDR 表示法中的零地址 0 0 0 0 0 通常称为 四
  • Angular 反应式表单集和清除验证器

    请协助 我想删除表单中的所有验证器 请告知是否可能 如果不可能 如果您有一个包含 20 个或更多表单控件的表单组 删除验证器的更好方法是什么 请参阅下面的示例 ngOnInit this exampleFormGroup this form