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

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA