Tutte le soluzioni di cui sopra sono abbastanza grandi, volevo dare i miei 2 centesimi su questo.
Sto solo controllando se il valore inserito è un numero o meno e controllando se non è vuoto, tutto qui.
Ecco l'html:
<input type="text" ng-keypress="CheckNumber()"/>
Ecco il JS:
$scope.CheckKey = function () {
if (isNaN(event.key) || event.key === ' ' || event.key === '') {
event.returnValue = '';
}
};
È abbastanza semplice.
Credo che questo non funzionerà su Paste tho, solo così è noto.
Per Paste, penso che dovresti usare l'evento onChange e analizzare l'intera stringa, un'altra bestia il tamme. Questo è specifico per la digitazione.
AGGIORNA per Incolla : aggiungi questa funzione JS:
$scope.CheckPaste = function () {
var paste = event.clipboardData.getData('text');
if (isNaN(paste)) {
event.preventDefault();
return false;
}
};
E l'input html aggiunge il trigger:
<input type="text" ng-paste="CheckPaste()"/>
Spero che questo aiuti o /