J'essaie de réinitialiser la valeur de input:textbox
si la valeur entrée est non numérique. J'utilise ng-change pour valider l'entrée. Reportez-vous au code ci-dessousng-change ne se déclenche pas pour la deuxième fois lorsque la valeur est mise à jour avec event.target.value
<input type="text" ng-change="onChange(this.P)" ng-model="P" class="col-xs-4 col-sm-4 col-md-4 col-lg-4" placeholder="Principle" />
<input type="text" ng-change="onChange(this.R)" ng-model="R" class="col-xs-4 col-sm-4 col-md-4 col-lg-4" placeholder="Rate" />
<input type="text" ng-change="onChange(this.T)" ng-model="T" class="col-xs-4 col-sm-4 col-md-4 col-lg-4" placeholder="Time" />
Remarque La fonction onChange est appelée depuis les trois zones de texte.
La fonction onChange
est la suivante
$scope.onChange = function(n) {
if (!$scope.isNumeric(n)) {
event.currentTarget.value = '';
}
Problème: Le problème est que si j'entre le même alphabet non numérique deux fois l'événement ng-change
ne se déclenche pas.
Par exemple, si la touche q
est enfoncée deux fois, ng-change
ne se déclenchera pas lorsque vous appuyez une deuxième fois sur la touche.
Voir jsFiddle here
question supplémentaire: Y at-il une meilleure façon de réinitialiser la valeur de la zone de texte?
Merci. Cela résout le problème, mais je ne crois pas qu'une solution générique à l'événement 'ng-change' ne déclenche pas la deuxième fois. – Taleeb