Toutes les solutions ci-dessus sont assez importantes, je voulais donner mes 2 cents à ce sujet.
Je vérifie seulement si la valeur saisie est un nombre ou non, et vérifie si elle n'est pas vide, c'est tout.
Voici le html:
<input type="text" ng-keypress="CheckNumber()"/>
Voici le JS:
$scope.CheckKey = function () {
if (isNaN(event.key) || event.key === ' ' || event.key === '') {
event.returnValue = '';
}
};
C'est assez simple.
Je crois que cela ne fonctionnera pas sur Paste tho, juste pour qu'il soit connu.
Pour Paste, je pense que vous auriez besoin d'utiliser l'événement onChange et d'analyser toute la chaîne, une autre bête, le tamme. Ceci est spécifique à la saisie.
UPDATE for Paste : ajoutez simplement cette fonction JS:
$scope.CheckPaste = function () {
var paste = event.clipboardData.getData('text');
if (isNaN(paste)) {
event.preventDefault();
return false;
}
};
Et l'entrée html ajoute le déclencheur:
<input type="text" ng-paste="CheckPaste()"/>
J'espère que cela aide o /