Все вышеперечисленные решения довольно большие, я хотел отдать на это свои 2 цента.
Я только проверяю, является ли введенное значение числом или нет, и проверяю, не пусто ли оно, вот и все.
Вот HTML:
<input type="text" ng-keypress="CheckNumber()"/>
Вот JS:
$scope.CheckKey = function () {
if (isNaN(event.key) || event.key === ' ' || event.key === '') {
event.returnValue = '';
}
};
Все очень просто.
Я верю, что это не сработает на Paste tho, просто чтобы это было известно.
Для Paste, я думаю, вам нужно будет использовать событие onChange и проанализировать всю строку, совсем другое чудовище - tamme. Это характерно для набора текста.
ОБНОВЛЕНИЕ для вставки : просто добавьте эту функцию JS:
$scope.CheckPaste = function () {
var paste = event.clipboardData.getData('text');
if (isNaN(paste)) {
event.preventDefault();
return false;
}
};
И ввод html добавляет триггер:
<input type="text" ng-paste="CheckPaste()"/>
Надеюсь, это поможет o /