[英]Prevent user from typing certain characters into a text input field
我不确定这叫什么。 这真的很简单。 我尝试使用管道,但出现错误。 我正在寻找一些简单的东西:
<input [(ngModel)]="order.name | lettersOnlyPipe"/>
那行不通。 我该怎么做才能做到这一点?
你最好的选择是你自己的指令。
一些让你前进的简单想法:
或者,* 监视 keydown 事件,并在每个 keydown 上检查该键是否为有效键 - 如果不是,请将您的输入设置回其旧值
这是基本的方法。 您可以查看angular 文档中的highlight 指令示例作为入门指南。
我在这里发布了类似的回复,您只需要更改正则表达式(从中删除数字和阿拉伯字符)。 希望能帮助到你。
input [name]="fullName" pattern="[a-zA-Z ]*" ngModel
在 angular 4 中,您可以使用 Pattern 属性并将模式指定为= [a-zA-Z ]
仅用于字母。
使用模式属性不会阻止在输入字段内输入任何内容。 它只会将其标记为无效。 您必须使用指令才能这样做。 这是一个简单的示例,它可以防止在输入字段中输入除正数以外的任何内容:
import {Directive, HostListener} from '@angular/core';
@Directive({
selector: 'input[dsancNumeroPositif]'
})
export class NumeroPositifDirective {
acceptedCharacters: string[] = ['.', ',', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];
constructor() { }
@HostListener('keypress', ['$event']) onInput(event: KeyboardEvent): void
{
if (!this.acceptedCharacters.includes(event.key)) {
event.preventDefault();
}
}
}
问题未解决?试试以下方法:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.