¿Cómo restablecer un valor de entrada cuando el límite supera el uso de AngularJS?

La tarea es manejar un campo de entrada si el número ingresado por el usuario en la entrada excede algún límite usando angularJS. Definimos una directiva limitTo y la usamos en un elemento de entrada HTML. Esta directiva se utiliza para todo el manejo de los límites de desbordamiento. La directiva llama a una función en el evento de pulsación de tecla donde podemos verificar los límites.

Ejemplo 1: este ejemplo establece el valor de la entrada del usuario en 0 si su límite supera los 100.

<!DOCTYPE html>
<html ng-app="myApp">
  
<head>
    <script src=
"https://ajax.googleapis.com/ajax/libs/angularjs/1.7.9/angular.min.js">
    </script>
</head>
  
<body ng-controller="MyController">
    <center>
        <h1 style="color: green;">
            GeeksforGeeks
        </h1>
        <b>
            Edit an input value when
            it exceeds the limit
        </b>
        <br><br>
  
        <!-- Custom directive limit-to -->
        <input limit-to="100"
            type="number"
            ng-model="val"> 
        {{val}}
    </center>
      
    <script type="text/javascript">
        angular.module('myApp', [])
            .controller('MyController', 
                ['$scope', function($scope) {
                          
                // Value to ng model the input
                $scope.val;
            }])
            .directive("limitTo", ['$timeout', function($timeout) {
              
                // Declaration of custom directive
                return {
                    restrict: "A",
                    link: function(scope, elem, attrs) {
                        var limit = parseInt(attrs.limitTo);
                        elem.on("keypress", function(e) {
                            $timeout(function() {
                                if (parseInt(e.target.value) > limit)
                                {
  
                                    // Handle change here
                                    scope.val = 0;
                                    scope.$apply();
                                    e.preventDefault();
                                }
                            });
                        });
                    }
                }
            }]);
    </script>
</body>
  
</html>

Salida: Tan pronto como el usuario supera los 100, el valor vuelve a establecerse en 0.

Ejemplo 2: Aquí cambiamos el texto según el límite de entrada. Si el valor de la entrada es inferior a 0, pasa a 0. Si su valor es superior a 100, pasa a 100; de lo contrario, permanece como está.

<!DOCTYPE html>
<html ng-app="myApp">
  
<head>
    <script src=
"https://ajax.googleapis.com/ajax/libs/angularjs/1.7.9/angular.min.js">
    </script>
</head>
  
<body ng-controller="MyController">
    <center>
        <h1 style="color: green;">
          GeeksforGeeks
        </h1>
        <b>
          Edit an input value when it exceeds the limit
        </b>
        <br><br>
          
        <!-- Custom directive limit-to -->
        <input limit-to="100" type="number" ng-model="val">
        <br> {{text}}
    </center>
    <script type="text/javascript">
        angular.module('myApp', [])
            .controller('MyController', ['$scope', function($scope) {
              
                // Value to ng model the input
                $scope.val;
                $scope.text = 'Inside Limit';
            }])
            .directive("limitTo", ['$timeout', function($timeout) {
                  
                // Declaration of custom directive
                return {
                    restrict: "A",
                    link: function(scope, elem, attrs) {
                        var limit = parseInt(attrs.limitTo);
                        elem.on("keypress", function(e) {
                            $timeout(function() {
                                if (parseInt(e.target.value) > limit) {
                                      
                                    // Handle change here if greater
                                    scope.text = "Outside limit (greater)";
                                    scope.val = 100;
                                    scope.$apply();
                                    e.preventDefault();
                                } else if (parseInt(e.target.value) < 0) {
                                    scope.text = "Outside limit (smaller)";
                                    scope.val = 0
                                    scope.$apply();
                                    e.preventDefault();
                                } else {
                                    scope.text = "Inside Limit";
                                    scope.$apply();
                                    e.preventDefault();
                                }
                            });
                        });
                    }
                }
            }]);
    </script>
</body>
  
</html>

Publicación traducida automáticamente

Artículo escrito por thvardhan y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *