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>
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With