我正在使用有关angular的指令,并且有输入。此输入应仅接受数字和一个逗号。一切看起来都不错,但是当我单击键代码229时,即使我使用以下代码进行验证,该字符也会添加到我的输入中;
@HostListener('keydown', ['$event'])
onkeydown(event: KeyboardEvent) {
if(event.keyCode === 229){
event.preventDefault();
}
}
答案 0 :(得分:1)
代替使用
event.preventDefault();
尝试使用
killEvent(e);
答案 1 :(得分:1)
在大多数情况下,键码229
不是真正的键码; it is what is sent out when the input method editor is processing key input 。处理完成后,将触发 real 键码。除非您正在处理斯堪的纳维亚语言(键映射到å
),否则您不必担心229
,而只需处理所需的值(0-9
和逗号)即可。 ):
if ((event.keyCode >= 48 && event.keyCode <= 57) || (event.keyCode >= 96 && event.keyCode <= 105)) || event.keyCode == 188) {
// Only accept 0-9 and commas
}