How do I restrict an input to only accept numbers?

前端 未结 17 1234
感情败类
感情败类 2020-12-07 09:28

I am using ngChange in AngularJS to trigger a custom function that will remove any letters the user adds to the input.



        
17条回答
  •  借酒劲吻你
    2020-12-07 10:10

    There are a few ways to do this.

    You could use type="number":

    
    

    Alternatively - I created a reuseable directive for this that uses a regular expression.

    Html

    test:

    Javascript

    ;(function(){
        var app = angular.module('myawesomeapp',[])
        .directive('restrictInput', [function(){
    
            return {
                restrict: 'A',
                link: function (scope, element, attrs) {
                    var ele = element[0];
                    var regex = RegExp(attrs.restrictInput);
                    var value = ele.value;
    
                    ele.addEventListener('keyup',function(e){
                        if (regex.test(ele.value)){
                            value = ele.value;
                        }else{
                            ele.value = value;
                        }
                    });
                }
            };
        }]);    
    }());
    

提交回复
热议问题