【问题标题】:Form input status color not changing表单输入状态颜色不变
【发布时间】:2019-03-22 08:53:33
【问题描述】:

在我的一个项目中,我需要根据另一个字段将字段标记为正确或不正确。我创建了一个示例,以便能够在这里提出这样的问题。

主要问题:我无法通过更改 ANOTHER 输入的值来更改输入的状态颜色。

为了更好地理解这个问题,我将尝试通过图片来解释: 第一步 - 我在 Smaller Value 输入中写了一个更大的数字并将其模糊,它显示了一个预期的错误:

第二步 - 我在 Bigger Number 输入中写了一个更大的数字并将其模糊,所以我希望 SMaller Value 输入为绿色,但它保持红色:

我想要实现的是: 当较小的值较大时,其输入为红色,当较小的值较小时,其输入为绿色。

当我更改 Smaller Value 的值并模糊输入时,它会起作用。但是,例如,当我在 Bigger Number 输入中写入一个较小的数字并对其进行模糊处理时,如果 Smaller Value 输入之前是绿色,则它不会变成红色。

这是我的表单和验证器功能:

   this.thisForm = new FormGroup({
      smallerValue: new FormControl('', [
        this.validateSuccessShortName.bind(this)
      ]),
      biggerNumber:new FormControl('', [
        Validators.required
      ])
    });
  }
  validateSuccessShortName(control: AbstractControl) {
      if (parseInt(control.value,10) > parseInt(this.biggerNumber, 10)) {
        return {value: control.value};
      }
      return null;
    }

我写了这个函数尝试手动触发验证,它确实触发了验证,只是Bigger Number输入无法改变较小输入的验证状态:

updateFields(){
  for (const field in this.thisForm.controls) {
  this.thisForm.controls[field].updateValueAndValidity();
}
}

这里有一个STACKBLITZ 来展示这个问题。

如果您需要更多详细信息,请告诉我!

【问题讨论】:

  • 您需要掌握在验证阶段分配给元素的 css 类名称并调整适当的 CSS。使用 Chrome -> 检查 -> 样式/计算
  • 不,这应该是在 Ionic 框架中构建的东西,但它只是不起作用,而且这个问题在 Github 上存在多个问题,在 Ionic 论坛中有多个线程。
  • 嗯 - 我知道是这种情况,因为我编写了一个双主题的 ionic 应用程序,并针对深色和浅色主题进行了修复。也有这样的事情。 ionicframework.com/docs/theming/theming-your-app ionicframework.com/docs/theming/overriding-ionic-variables - 但是如果你达到这个问题所提出的粒度级别,你确实需要知道我提到的东西。

标签: javascript angular typescript ionic-framework ionic3


【解决方案1】:

疯了!答案是将内置类手动绑定到 ion-items:

<ion-item [class.ng-invalid]="!thisForm.controls.smallerValue.valid" [class.ng-valid]="thisForm.controls.smallerValue.valid">

此 github 问题中的答案归功于 brianlittmann:

https://github.com/ionic-team/ionic/issues/6040#issuecomment-315037781

工作堆栈闪电战: https://stackblitz.com/edit/ionic-ctmumh?file=pages/home/home.html

【讨论】:

    【解决方案2】:

    离子项目和验证似乎存在某种问题。我有同样的问题。其他人也问过,至于 Ionic 3 没有回应。

    类似问题:

    https://github.com/ionic-team/ionic/issues/12344

    https://github.com/ionic-team/ionic/issues/12102

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-05
      • 1970-01-01
      • 2021-04-19
      • 1970-01-01
      • 2019-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多