2016-12-12 2 views
1

Ich hatte ein Textfeld von Typ = "Text", aber es ist erlaubt e eingegeben werden .. Ich möchte sogar verhindern, dass passiert, wie können wir das tun?Wie verhindert man Eingabe Typ = "Nummer" unter E

<input class="form-control" maxlength="12" ng-model="$ctrl.NumberInput" type="number" 
    min="0" required focus> 

Kann jemand helfen!

+0

@ Rob Wenn ich kopieren und es ist immer noch so dass e der –

Antwort

2

Sie können die folgende Anweisung verwendet werden, die nur für Zahlen beschränken wird

app.directive('validNumber', function() { 
    return { 
    require: '?ngModel', 
    link: function(scope, element, attrs, ngModelCtrl) { 
     if(!ngModelCtrl) { 
     return; 
     } 

     ngModelCtrl.$parsers.push(function(val) { 
     if (angular.isUndefined(val)) { 
      var val = ''; 
     } 

     var clean = val.replace(/[^-0-9\.]/g, ''); 
     var negativeCheck = clean.split('-'); 
     var decimalCheck = clean.split('.'); 
     if(!angular.isUndefined(negativeCheck[1])) { 
      negativeCheck[1] = negativeCheck[1].slice(0, negativeCheck[1].length); 
      clean =negativeCheck[0] + '-' + negativeCheck[1]; 
      if(negativeCheck[0].length > 0) { 
       clean =negativeCheck[0]; 
      } 

     } 

     if(!angular.isUndefined(decimalCheck[1])) { 
      decimalCheck[1] = decimalCheck[1].slice(0,2); 
      clean =decimalCheck[0] + '.' + decimalCheck[1]; 
     } 

     if (val !== clean) { 
      ngModelCtrl.$setViewValue(clean); 
      ngModelCtrl.$render(); 
     } 
     return clean; 
     }); 

     element.bind('keypress', function(event) { 
     if(event.keyCode === 32) { 
      event.preventDefault(); 
     } 
     }); 
    } 
    }; 
}); 

DEMO

Wenn Sie nicht wollen, Richtlinie Gebrauch ng-pattern

<input type="text" ng-model="$ctrl.numberInput" ng-pattern="/[^0-9]/g" required /> 

DEMO verwenden

+0

ohne Richtlinie ohnehin Ist der? –

+0

@HVarma überprüfen aktualisierte Antwort – Sajeetharan

+0

Es ist immer noch erlaubt e in Ihrem zweiten Demo-Ritus>? –

2

können Sie die einfachste Art und Weise versuchen: ng-pattern

<input type="text" ng-model="$ctrl.numberInput" ng-pattern="/^\d+$/" required /> 
Verwandte Themen