Alle oben genannten Lösungen sind ziemlich groß, ich wollte meine 2 Cent dafür geben.
Ich überprüfe nur, ob der eingegebene Wert eine Zahl ist oder nicht, und ob er nicht leer ist, das ist alles.
Hier ist das HTML:
<input type="text" ng-keypress="CheckNumber()"/>
Hier ist der JS:
$scope.CheckKey = function () {
if (isNaN(event.key) || event.key === ' ' || event.key === '') {
event.returnValue = '';
}
};
Es ist ganz einfach.
Ich glaube, das wird bei Paste tho nicht funktionieren, nur damit es bekannt ist.
Ich denke, für Paste müssten Sie das onChange-Ereignis verwenden und den gesamten String analysieren, ein ganz anderes Biest, das Tamme. Dies ist spezifisch für die Eingabe.
UPDATE zum Einfügen : Fügen Sie einfach diese JS-Funktion hinzu:
$scope.CheckPaste = function () {
var paste = event.clipboardData.getData('text');
if (isNaN(paste)) {
event.preventDefault();
return false;
}
};
Und die HTML-Eingabe fügt den Auslöser hinzu:
<input type="text" ng-paste="CheckPaste()"/>
Ich hoffe das hilft o /