之前,我使用jQuery处理问题如下:
$("#textInput").keydown(function (e) {
return e.which !== 32;
});
您将如何使用新的 Angular 和 Typescript 来处理它?</p>
最佳答案
或者干脆;
<input type="text" (keydown.space)="$event.preventDefault();">
我设法创建了一个方便的指令,它接受你给它的任何 key 数字并阻止它们
@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();
}
}
}
然后像这样使用它
<input [prevent-keys]="[32, 37 , 38 , 39 , 40 ]" type="text">
这将阻止 space , up , left , down , right keys :D
关于angular - 防止用户在文本框中触发空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41375142/