Javascript 当输入类型为“时,OnlyNumeric指令不工作”;“数字”;在角js中

Javascript 当输入类型为“时,OnlyNumeric指令不工作”;“数字”;在角js中,javascript,jquery,angularjs,Javascript,Jquery,Angularjs,我搜索了几乎所有的东西,但没有找到答案,也许这里有人可以帮忙。 好的,首先让我介绍一下这个指令的作用,它不允许在我的输入中输入任何字母 这里我的OnlyNumeric指令在我的input type=“text”工作时起作用, 但当input type=“number” 这是我的指示 app.directive('onlyNumeric', function () { return { require: 'ngModel', link: function (

我搜索了几乎所有的东西,但没有找到答案,也许这里有人可以帮忙。 好的,首先让我介绍一下这个指令的作用,它不允许在我的输入中输入任何字母 这里我的
OnlyNumeric
指令在我的
input type=“text”
工作时起作用, 但当
input type=“number”
这是我的指示

app.directive('onlyNumeric', function () {
    return {
        require: 'ngModel',
        link: function (scope, element, attr, ngModelCtrl) {
            function fromUser(text) {
                alert();
                if (text == null) { text = ""; }
                var text = text.toString();
                var transformedInput = text.replace(/[^0-9]+/g, '');
                if (transformedInput.length > 7) {
                    transformedInput = transformedInput.slice(0, -1);
                }
                if (transformedInput !== text) {
                    ngModelCtrl.$setViewValue(transformedInput);
                    ngModelCtrl.$render();
                }

                if (!isNaN(Number(transformedInput))) {
                    //   alert("decimal no");
                    return parseInt(transformedInput);
                }
                else { return transformedInput; }
                //  return transformedInput;
            }
            ngModelCtrl.$setValidity('is_valid', false);
            ngModelCtrl.$parsers.push(fromUser);

        }
    };
});
我的html

<input type = "number" only-numeric ng-model ="age">

因此,当我将我的类型更改为“文本”时,它就起作用了

所以我尝试了另一种捕获keydown事件的方法,但我不知道如何捕获我的输入值,
ngModelCtrl.$parsers.push(fromUser)在输入有效之前不会传递我的输入

我认为您没有执行指令,您应该将其与带破折号的名称一起使用,如下所示:

<input type="number" only-numeric ng-model="age">

很抱歉,这是一个打字错误,我编辑了我的QT,但输出仍然相同