看到这个plunkr: https://plnkr.co/edit/nGKAnXrrzgKSxpkdvEhX?p=preview
我在Angular中有一个显示<form>
字段的简单<input type="number">
。
当我输入类似&#34; 123&#34;一切都好。
但输入&#34; 123-456&#34;似乎也没关系,虽然这不是真正的&#34;数。我发现Angular将myNumber.value
设置为null
,所以一切似乎都没问题。
我想要实现的是Angular不会将输入"123-456"
重置为null
,而是告诉我输入无效。
我怎样才能做到这一点?
答案 0 :(得分:0)
您可以删除type="number"
添加一个只允许数字和-
键的简单函数。
<input formControlName="myNumber" #myNumber (keydown)=onlyNumberKey($event)><br>
onlyNumberKey(event){
let charCode = (event.query) ? event.query : event.keyCode;
console.log(charCode);
if (charCode != 189 && charCode > 31
&& (charCode < 48 || charCode > 57))
return false;
return true;
}