我想限制用户在 Android 设备上的数字字段中输入特殊字符。这 ”。” (点)字符未按预期在“onkeypress”事件中传递值。
With <input type="text">
我可以阻止用户输入任何特殊字符。
但与<input type="number"/>
我无法限制用户输入点键。
尝试了许多堆栈溢出帖子。但仍然没有运气。
下面是我正在尝试的代码:
HTML
<input type="number" ng-model="registrationField.mobilenumber" tabindex="0" no-special-character="^[0-9-]*$" >
JS
app.directive("noSpecialCharacter", [function() {
return {
restrict: "A",
link: function(scope, elem, attrs) {
var limit = parseInt(attrs.limitTo);
var regex = RegExp(attrs.noSpecialCharacter);
angular.element(elem).on("keydown", function(e) {
if(e.key == "Unidentified"){
e.preventDefault();
return false;
}
});
}
}
}])
我在用keydown
事件因为keypress
按数字键盘中的点键不会触发事件。
另外,我正在收到e.key
as Unidentified
当用户输入点键时。所以我试图用它来操纵。
我尝试在用户输入点键时修剪最后一个值,但这也不起作用。
请建议任何可能的方法。
尝试了上面的代码Android Nexus 5X
device.