代码之家  ›  专栏  ›  技术社区  ›  Learning is a mess

`(keyup.backspace键)`无法捕获“shift+backspace”

  •  1
  • Learning is a mess  · 技术社区  · 4 年前

    我试图捕捉表单输入字段中发生的每一次删除和退格操作,我的方法如下:

    <input (keyup.enter)="sendData()" (keyup.delete)="clear()" (keyup.backspace)="clear()">
    

    0 回复  |  直到 4 年前
        1
  •  2
  •   Michael D    4 年前

    我不知道为什么组合键不起作用。我想 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