'How to disable typing but allow copy and paste in a text box in Angular 8?

I want to restrict typing in a text box but I need to paste anything inside that textbox in Angular



Solution 1:[1]

You have to stop the event propagation if the combination pressed is different than the one you choose.

You can do it like this:

public onInput(event: KeyboardEvent) {
  //if is pressed a different key than c or v, or the ctrl key isn't pressed stop event
  if (!event.ctrlKey || (event.key.toLowerCase() !== 'c' && event.key.toLowerCase() !== 'v')) {
    event.stopImmediatePropagation();
    event.stopPropagation();
    event.preventDefault();
  } 

  // else execute the default event behaviour
}
<input type="text" (keydown)="onInput($event)">

Hope it helps. ^^

P.S.: You have to use the event keydown for this to work.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Matteo Brusarosco