`(keyup.backspace)` 无法捕获 'shift + backspace'
`(keyup.backspace)` cannot capture 'shift + backspace'
我试图捕获表单输入字段中发生的每一次删除和退格,我是通过以下方式进行的:
<input (keyup.enter)="sendData()" (keyup.delete)="clear()" (keyup.backspace)="clear()">
它确实适用于退格键,但与左移或右移结合使用时无效。我怎样才能涵盖这些情况?
我不确定为什么组合键不起作用。我想 Ctrl 组合也不起作用。因此,与此同时,您可以使用组合的键码作为解决方法。
模板
<input (keyup)="onKeyup($event)">
控制器
onKeyup(event: KeyboardEvent) {
const key = event.keyCode || event.charCode;
if (key === 13) { // enter (cr)
sendData();
} else if (
key === 8 || key === 46 || // backspace or delete
(key === 8 && 17) || // backspace + ctrl
(key === 8 && 16) || // backspace + shift
(key === 46 && 17) // delete + ctrl
) {
clear();
}
}
工作示例:Stackblitz
我试图捕获表单输入字段中发生的每一次删除和退格,我是通过以下方式进行的:
<input (keyup.enter)="sendData()" (keyup.delete)="clear()" (keyup.backspace)="clear()">
它确实适用于退格键,但与左移或右移结合使用时无效。我怎样才能涵盖这些情况?
我不确定为什么组合键不起作用。我想 Ctrl 组合也不起作用。因此,与此同时,您可以使用组合的键码作为解决方法。
模板
<input (keyup)="onKeyup($event)">
控制器
onKeyup(event: KeyboardEvent) {
const key = event.keyCode || event.charCode;
if (key === 13) { // enter (cr)
sendData();
} else if (
key === 8 || key === 46 || // backspace or delete
(key === 8 && 17) || // backspace + ctrl
(key === 8 && 16) || // backspace + shift
(key === 46 && 17) // delete + ctrl
) {
clear();
}
}
工作示例:Stackblitz