Запретить вставку неверных строк с помощью директивы ng-past - PullRequest
0 голосов
/ 07 февраля 2019

У меня есть тег <input type="number">, в котором я хотел бы иметь только целые числа.Я смог предотвратить вставку '-', 'e' и '.'при нажатии клавиши, но я не смог сделать это при вставке события.Как я могу проверить вставленную строку?

Используемая версия AngularJS - 1.7.0

1 Ответ

0 голосов
/ 07 февраля 2019

Сделать директиву.Попробуйте следующим образом

HTML

<div ng-app="app" class="container">

  <p>Demo of AngularJS Numbers Only Directive</p>

  <p>Input below will accept only numbers.</p>

  <p><input type="text" ng-model="val" numbers-only class="form-control" /></p>


</div>

JS

var app = angular.module('app', []);

app.directive('numbersOnly', function () {
    return {
        require: 'ngModel',
        link: function (scope, element, attr, ngModelCtrl) {
            function fromUser(text) {
                if (text) {
                    var transformedInput = text.replace(/[^0-9]/g, '');

                    if (transformedInput !== text) {
                        ngModelCtrl.$setViewValue(transformedInput);
                        ngModelCtrl.$render();
                    }
                    return transformedInput;
                }
                return undefined;
            }            
            ngModelCtrl.$parsers.push(fromUser);
        }
    };

});

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...