【问题标题】:Set invalid status to reactive form control将无效状态设置为反应式表单控件
【发布时间】:2017-09-09 01:44:21
【问题描述】:

我正在尝试将表单控件状态设置为无效,但此示例不起作用

this.currencyForm.controls['currencyMaxSell'].setErrors({smallerThan: true})

【问题讨论】:

  • 它应该以这种方式工作。你能在 Plunker 中复制吗?
  • 我在 Plunker 中使用 "@angular/cli": "^1.0.0", "@angular/forms": "^4.0.1",仅 2.0.0-beta17跨度>
  • Plunker 为最新的 Angular2 版本提供了一个模板。只需使用“新建”按钮并选择“Angular”
  • @GünterZöchbauer 我发现为什么不更新,不改变价值。谢谢。
  • 但现在无法删除该错误,找到方法 setErrors 但某些方法如 deletError 无法资助

标签: angularjs angular angular2-forms


【解决方案1】:

我不知道为什么有人愿意在没有验证器的情况下将 formControl 设置为无效,但这是您的操作方法this.myForm.controls['mycontrolname'].setErrors({});

你应该使用validators,这样设置控制无效

【讨论】:

  • 我可以给你一个很好的例子。想象一下,您有一个下拉列表和一个输入字段。下拉列表为您提供制造商。输入字段用于为该制造商的产品命名。规则是,名称在同一制造商的所有产品中必须是唯一的。如果您先选择制造商,然后输入项目名称,如果名称已在使用中,验证将报错。但是如果您输入一个不存在的名称然后再次更改制造商怎么办?如果该项目的名称正在使用中,则名称输入的验证器不会警告您。
  • @Lynx242 您应该在 formGroup(或任何父控件)上使用验证器并在那里进行验证。您可以在验证器中访问这两个字段并相应地设置错误。
  • 好的。会看看它。我认为验证器只是 FormControl-bound。
猜你喜欢
  • 2023-03-20
  • 1970-01-01
  • 1970-01-01
  • 2017-09-23
  • 1970-01-01
  • 1970-01-01
  • 2019-10-26
  • 1970-01-01
  • 2021-05-28
相关资源
最近更新 更多