Javascript 如何在angular 4中按键盘
我正在尝试实现一个只允许输入数字的输入标记 我找到工作的一个方法是Javascript 如何在angular 4中按键盘,javascript,angular,Javascript,Angular,我正在尝试实现一个只允许输入数字的输入标记 我找到工作的一个方法是 TS方法: keyPress(event: KeyboardEvent) { const pattern = /[0-9]/; const inputChar = String.fromCharCode(event).charCode); if (!pattern.test(inputChar)) { // invalid character, prevent input
TS方法:
keyPress(event: KeyboardEvent) {
const pattern = /[0-9]/;
const inputChar = String.fromCharCode(event).charCode);
if (!pattern.test(inputChar)) {
// invalid character, prevent input
event.preventDefault();
}
}
HTML:
这里不需要html中的模式,因为您只能键入0-9以外的其他字符
祝你好运 我们应该使用
KeyboardEvent
而不是event作为keyPress
的输入参数的一种类型。对于任何寻求其他方法确定是否按下特定键(如空格键)的人,您可以使用:
grabText(event){
if(event.code === 'Space'){
console.log('PRESSED SPACE');
...
}
}
要仅创建输入字段编号,可以执行此操作。因此,您可以使用onkeypress实现另一个功能
<input type="text"
onkeydown="javascript: return event.keyCode === 8 ||
event.keyCode === 46 ?
true : !isNaN(Number(event.key))"/>
为什么要在括号内添加按键?这是什么语法?这让我很困惑,因为()应该与@Output()
属性一起使用。它是一个类似于click、keydown、change的事件,应该与绑定组件方法类似。输出是一个EventEmitter,是相同的。此时上述代码中唯一的错误是event)。charCode实际上应该是event.charCode,即应删除一个字符“”)。但StackOverflow表示,在给定的编辑中,至少需要更改6个字符。所以,本质上。。。你需要发明其他实际上不必要的改变。。。(?)
<input type="text"
onkeydown="javascript: return event.keyCode === 8 ||
event.keyCode === 46 ?
true : !isNaN(Number(event.key))"/>