2017-09-25 3 views
0

J'utilise AngularJS et Kendo UI. Je veux imprimer uniquement des nombres entiers dans mon composant d'entrée. J'ai essayé d'utiliser des expressions régulières, mais cela ne m'a pas aidé.Seuls les nombres entiers permettent l'impression en entrée

Cette ma config pour l'entrée:

input(
    ng-pattern='vm.regexp' 
    min='1' 
    ng-model='vm.maxContentCounter' 
) 
vm.regexp = /^(0|[1-9]\d*)$/; 

Cette entrée permet par des virgules et des points d'impression, et je peux imprimer moins de valeur 1. Comment puis-je autoriser uniquement les valeurs entières d'impression?

Répondre

1

<html ng-app="myApp"> 
 
<head> 
 
\t <title></title> 
 
</head> 
 
<body ng-controller="myCtrl"> 
 
<input type="text" valid-decimal-number ng-model="Amount" ng-blur="ConvertToDecimal()"> 
 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<script type="text/javascript"> 
 
var app = angular.module("myApp", []); 
 
app.controller('myCtrl', ['$scope', function ($scope) { 
 
$scope.ConvertToDecimal = function (val) { 
 
\t if(isNaN($scope.Amount)){ 
 
\t \t alert("given input is not a number"); 
 
\t \t return; 
 
\t } 
 
     var num = Number($scope.Amount); 
 
     var dupNum=Math.floor(num); 
 
     if(num !=dupNum){ 
 
     alert("given input is not a number"); 
 
\t \t return; 
 
     } 
 
     $scope.Amount=num; 
 
    } 
 
}]); 
 
</script> 
 
</body> 
 
</html>

+0

L'entrée accepte '1.2' ... – DontVoteMeDown

+0

Vouliez-vous dire qu'il ne devrait pas accepter 1.2? –

+0

* "Seuls les nombres entiers" * lit le titre ... – DontVoteMeDown