手记

Angular.js 限制输入框输入内容,为纯数字

JS:

angular.module('app').directive('numInput',function () {
    return {
        require: '^ngModel',
        scope: true,
        link: function (scope, el, attrs, ngModelCtrl) {

            function formatter (value) {
                let formattedValue = '';
                if(!_.isEmpty(value)){
                    let reg = /^\d+(\.\d+)?$/;
                    let formattedValue =  reg.test(value) ? value : '';
                    el.val(formattedValue);
                    ngModelCtrl.$setViewValue(value);
                    // scope.$apply();
                }
                return formattedValue;
            }

            ngModelCtrl.$formatters.push(formatter);

            el.bind('blur', function () {
                formatter(el.val());
            });
        }
    };
});

html:

<input type="text" ng-model="value" num-input>


2人推荐
随时随地看视频
慕课网APP