输入类型编号忽略指令

时间:2017-02-17 18:31:47

标签: javascript angularjs angularjs-directive

我正在使用AngularJS,我实现的一个指令是阻止输入非数字字符,实现如下:

mainModule.directive('onlyNumbers', function () {
    return {
        require: 'ngModel',
        link: function(scope, element, attrs, modelCtrl) {

            modelCtrl.$parsers.push(function (inputValue) {
                var transformedInput = inputValue.replace(/\D/g,'').replace(/ /g, '');
                if (transformedInput != inputValue) {
                    modelCtrl.$setViewValue(transformedInput);
                    modelCtrl.$render();
                }
                return transformedInput;
            });
        }
    };
});

当在text类型的输入上使用时,该指令工作正常但如果我想在类型为number的输入上使用它,则该指令将被忽略,并允许输入+, - ,。和e字符,它们对输入数字有效,但对我的方案无效,因为我不想允许将负数,小数和指数数字输入到这些类型为数字的输入中。

我怎样才能使这个指令比输入上使用的指令更优先?

0 个答案:

没有答案