我的输入是type =“ number”。我想防止用户在输入中键入小数,加,减或e。目前,我正在尝试在ng-keypress上启用e.preventDefault()以完全禁用密钥。但这是行不通的。我正在使用打字稿和angularJs。它可以在按键上看到事件,但是并不能阻止输入。或者,将ng-pattern与正则表达式一起使用会成为0-9的替代选项限制输入吗?
setCapacityType(e) {
let keyCode = (e.keyCode ? e.keyCode : e.which);
if (keyCode < 48 && keyCode > 57) {
e.preventDefault();
console.log("xx");
}
}
<input type="number" ng-keydown="vm.setCapacityType($event)"
autocomplete="off" autocorrect="off" spellcheck="false">
最佳答案
好,两件事:
首先,您必须实例化您的功能:
vm.setCapacityType = function(e) {
要只允许数字
[0-9]
,您应输入以下条件:if (keyCode < 48 || keyCode > 57) {
现在,您可以拥有以下内容:
angular.module('app', [])
.controller('mainCtrl', function() {
var vm = this;
vm.setCapacityType = function(e) {
let keyCode = (e.keyCode ? e.keyCode : e.which);
if (keyCode < 48 || keyCode > 57) {
console.log("Prevent!");
e.preventDefault();
}
}
});
<html ng-app="app">
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.7/angular.min.js"></script>
</head>
<body ng-controller="mainCtrl as main">
<input type="text" ng-keydown="main.setCapacityType($event)" autocomplete="off" autocorrect="off" spellcheck="false">
</body>
</html>
带有正则表达式的ng-pattern是将选项输入限制为0-9的替代选项吗?
不,ngPattern指令不会阻止/限制输入。