如何将角度数字输入限制为N个小数位?

时间:2019-11-06 16:07:31

标签: angular typescript angular-directive angular2-directives angular-forms

输入不接受小数点后N位以上的数字。 N定义为输入。

例如,如果N = 3,并且用户想要输入123.3456。应该只允许他输入123.345。

我想提这样的东西:

<input type="number" [(ngModel)]="value" nDecimalsInput [decimals]="2">

通过指令或其他任何内容...

3 个答案:

答案 0 :(得分:0)

输入掩码即可。您可以尝试a lib from npm或自己创建指令。

在这种情况下,lib的用法如下:

<input type="number" [(ngModel)]="value" mask="0*.00">

答案 1 :(得分:0)

您可以在(keydown)=“ maxLength()”上做一个简单的功能

maxLength() {
if (N && this.myFormControl.value.toString().split('.')[1].length === N) {
      return false;
    }
}

答案 2 :(得分:0)

因此您可以这样做来覆盖或挂接到事件(例如更改或键入):

parseFloat($(this).val()).toFixed(3)

或使用类似的面具: https://github.com/assisrafael/angular-input-masks然后做

<input type="text" name="field" ng-model="number" ui-number-mask="3">