此答案是对Leopoldo's answer 的简化和优化。
在每次按键时从您的输入中触发一个函数,如下所示:
<input type="text" ng-keydown="onlyNumbers($event);"/>
您可以在控制器中以这种方式描述功能
$scope.onlyNumbers = function(event){
// 'up': 38,'right':39,'down':40,'left':37,
// 'escape':27,'backspace':8,'tab':9,'enter':13,'del':46,
// '0':48,'1':49,'2':50,'3':51,'4':52,'5':53,'6':54,'7':55,'8':56,'9':57
var keys = { 38:true,39:true,40:true,37:true,27:true,8:true,9:true,13:true,
46:true,48:true,49:true, 50:true,51:true,52:true,53:true,
54:true,55:true,56:true,57:true };
// if the pressed key is not listed, do not perform any action
if(!keys[event.keyCode]) { event.preventDefault(); }
}
如果您使用的是 Angular 2+,您可以通过这种方式调用相同的函数:
<input type="text" (keydown)="onlyNumbers($event);"/>
您的 Angular 2+ 函数应如下所示:
onlyNumbers(event) { // the logic here }