首页 > 解决方案 > Angular 8 数字输入最小值/最大值

问题描述

我有一个 Angular 8 应用程序。我想做的是不让用户在数字输入中设置任何其他值,而不是从 0-100 的范围

我在想这样的事情

<input type="number" [ngModel]="value" (ngModelChange)="validateValue($event)">

value = 100;

validateValue(event: number) {
    if (event > 100) {
      this.value = 100;
    } else if (event < 0) {
      this.value = 0;
    } else {
      this.value = event;
    }
}

当有 100 并且我删除最后一个数字并写 5(所以现在我应该有 105)时,它会变魔术并将值更改为 100。

当我用光标选择整数并写例如 105 时,它也会发挥作用。

然而。当我使用步进箭头或光标选择最后一位数字并更改最后一位数字时,魔法并没有发生。

为什么这不起作用?

标签: angulartypescriptinputngmodelangular-ngmodelchange

解决方案


你可以试试这个:

public value;

  validateWhite(event: number) {

    if (event > 100) {
      this.value = 100;
    } else if (event < 0) {
      this.value = 0;
    } else {
      this.value = event;
    }
  }

在模板中:

<input type="number" [(ngModel)]="value" (ngModelChange)="validateWhite($event)">

它对我很有效:)


推荐阅读