【发布时间】:2016-03-18 10:12:36
【问题描述】:
我只需要允许用户输入数字。这就是我所做的。
我的指令模板的一部分:
<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,文本框中的值也会被输入。我可以以某种方式防止非数字键按下吗?
【问题讨论】:
-
你的函数是
allowNumbers还是allowNumberOnly? -
尝试使用
if (!allowed) ev.preventDefault(); -
你不能只使用 type="number" 吗?
-
是的,@LDJ 是对的,如果您只想要数字,为什么不能使用数字输入字段而不是文本输入字段?
标签: javascript angularjs