Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Directive to disable Cut, Copy and Paste function for textbox using Angular2

Tags:

angular

ionic2

I am using Angular2 to restrict the copy and paste in textbox. But how do i write a custom directive, so that it will be easy to apply for all the text fields.

Below is the working code to restrict the copy and paste functionality.

<ion-input formControlName="confirmpass" type="tel" (cut)="$event.preventDefault()" (copy)="$event.preventDefault()" (paste)="$event.preventDefault()"></ion-input>
like image 253
vishnu Avatar asked Nov 20 '17 04:11

vishnu


Video Answer


1 Answers

You can use a HostListener in your directive to catch cut, paste and copy events and then use preventDefault(). Here's an example

import { Directive, HostListener } from '@angular/core';

@Directive({
  selector: '[appBlockCopyPaste]'
})
export class BlockCopyPasteDirective {
  constructor() { }

  @HostListener('paste', ['$event']) blockPaste(e: KeyboardEvent) {
    e.preventDefault();
  }

  @HostListener('copy', ['$event']) blockCopy(e: KeyboardEvent) {
    e.preventDefault();
  }

  @HostListener('cut', ['$event']) blockCut(e: KeyboardEvent) {
    e.preventDefault();
  }
}

Use directive like so

<ion-input appBlockCopyPaste formControlName="confirmpass" type="tel"></ion-input>

Working demo

like image 80
Aamir Khan Avatar answered Sep 22 '22 07:09

Aamir Khan