Мне нужно разрешить пользователю вводить только цифры. Вот что я сделал.Предотвращение ввода пользователем ввода без номера
Порция шаблоне директивы:
<input type="text" maxlength="5" ng-keypress="allowNumbers($event)">
Функция в моей директиве:
$scope.allowNumbers= function (ev) {
var key = ev.charCode || ev.keyCode || 0;
var allowed = (
key == 8 ||
key == 9 ||
key == 13 ||
key == 46 ||
key == 110 ||
key == 190 ||
(key >= 35 && key <= 40) ||
(key >= 48 && key <= 57) ||
(key >= 96 && key <= 105));
return allowed;
};
Во время отладки, я заметил, что даже функция возвращает true
или false
, значение в текстовом поле действительно становится Введенный , Могу ли я каким-то образом предотвратить это для немедленного нажатия клавиши?
Возможный дубликат [Запретить ввод чисел без номера в номере типа ввода] (http://stackoverflow.com/questions/19966417/prevent-typing-non-numeric-in-input-type-number) – MysterX
Является ли ваша функция с именем 'allowNumbers' или' allowNumberOnly'? –
попробуйте использовать 'if (! Allowed) ev.preventDefault();' – zooblin