Masahiro Okubo

angularjs 整数のみ入力可のディレクティブ

angularjs 整数のみ入力可のディレクティブ

angularjsを触ることになって、タイトルのディレクティブがなか中見つからなたったのでシェアします

小数点、マイナス入力ができないです

// js file
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);
        }
    };
});

// html file
<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>

参考にした記事

AngularJS Numbers Only Directive


関連記事

copyright© 2016-2021 Masahiro Okubo