Or simply:
<input type="text" (keydown.space)="$event.preventDefault();">
I managed to create a convenient directive that is consistent with what key number you give it and prevents them
@Directive( { selector : '[prevent-keys]', host : { '(keydown)' : 'onKeyUp($event)' } } ) export class PreventKeyseDirective { @Input( 'prevent-keys' ) preventKeys; onKeyUp ( $event ) { if ( this.preventKeys && this.preventKeys.includes( $event. keyCode ) ) { $event.preventDefault(); } } }
And then use it like
<input [prevent-keys]="[32, 37 , 38 , 39 , 40 ]" type="text">
This will prevent spaces, up, left, down, right: D
source share