将输入字段值转换为十进制

时间:2015-03-10 12:47:28

标签: angularjs

我一直在寻找一些方法或AngularJS指令来支持HTML输入表单中的十进制数字。

我的输入字段应该最多有两位小数。目前我离开输入字段时有这些要求:

  1. “100”=> “100.00”
  2. “100.333”=> “100.33”
  3. “100,33”=> “100.33”
  4. 如果我输入文本字符串(不是数字),则该字段必须无效。

    我找不到解决问题的方法。我希望你能帮助我。

3 个答案:

答案 0 :(得分:0)

试试这个:

{{ number_expression | number : fractionSize}}

More details

答案 1 :(得分:0)

我的解决方案是使用FCSA number directive来控制HTML输入字段中的输入。

<input type='text' ng-model='myNumber' fcsa-number="{ min: 0, max: 100, maxDecimals: 2 }" />

答案 2 :(得分:-2)

检查一下 How to restrict input number to non-decimal

这应该让你了解它

问候

修改

如果您不点击链接: 这应该是你的想法

您可以为此制作自定义指令,并合并ngModelController. 像这样:Proof of Concept

    module.directive("noDecimalInput", function() {
    return {
        restrict: "A",
        require:"ngModel",
        link: function(scope,element,attr,ctrl) {
            ctrl.$parsers.push(function(value){
                if(value.indexOf(".")>-1) {
                    ctrl.$setValidity("notDecimal",false);
                    return undefined;
                }
                ctrl.$setValidity("notDecimal",true);
                return value;
            });
        }
    }
});