【问题标题】:How to Automatically insert decimal in Input field如何在输入字段中自动插入小数
【发布时间】:2014-09-28 00:18:50
【问题描述】:

我正在使用一个 Angular 指令,它用逗号格式化输入字段数字。我还希望这个过滤器自动插入小数点。每个数字总是会涉及到美分。例如,如果我想在输入字段中输入 1,000.00 美元,我必须输入 100000。我做了一个 plunkr,但无法获得角度工作

plunkr

app.directive('format', ['$filter', function ($filter) {
return {
    require: '?ngModel',
    link: function (scope, elem, attrs, ctrl) {
        if (!ctrl) return;


        ctrl.$formatters.unshift(function (a) {
            return $filter(attrs.format)(ctrl.$modelValue)
        });


        ctrl.$parsers.unshift(function (viewValue) {
            var plainNumber = viewValue.replace(/[^\d|\-+|\.+]/g, '');
            elem.val($filter('number')(plainNumber));
            return plainNumber;
        });
    }
};
 }]);

【问题讨论】:

    标签: angularjs angularjs-ng-model


    【解决方案1】:

    大概是这样的?

    ctrl.$parsers.unshift(function (viewValue) {
        var plainNumber = viewValue.replace(/[^\d|\-+]/g, ''); //replace even dot and comma
        elem.val($filter('number')(plainNumber/100 , 2)); //use number filter with 2 decimal places and divide the number by 100
        return plainNumber;
    });
    

    Plnkr

    【讨论】:

      猜你喜欢
      • 2013-10-19
      • 2015-06-21
      • 2020-07-23
      • 2010-11-03
      • 1970-01-01
      • 2016-07-01
      • 2016-08-16
      • 1970-01-01
      • 2017-04-21
      相关资源
      最近更新 更多