angular - 防止用户在文本框中触发空格

标签 angular typescript

之前,我使用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/

相关文章:

Javascript 展平对象内的数组

knockout.js - Typescript 在内部模块中导入外部模块

angular - 避免在循环中使用嵌套可观察订阅的正确方法是什么?

javascript - BaseResponseOptions angular2 处理全局错误

javascript - Angular7:服务 worker 未按预期运行

typescript - 断言总是返回错误(期望 'a' 深度等于 'a' )

TypeScript使 `outFile`包含依赖项

typescript - 如何通过 Aurelia/Typescript 导入和使用 PhotoSwipe?

html - 滚动条轨道随机出现

angular - ngserve --port 4200 和 ngserve --host ip :4200 之间的区别