2017-03-31 154 views
0

我不确定这称为什么。这很简单。我尝试使用管道,但是出现错误。我正在寻找简单的东西:Angular 2阻止用户将某些字符输入到文本输入字段

<input [(ngModel)]="order.name | lettersOnlyPipe"/> 

这是行不通的。我能做什么来完成这件事?

+0

你想阻止他们进入?或者在进入后将其过滤掉?如果更晚,那么一个管道将工作。如果前者,那么一个模式或指令可能是你最好的选择。 – DeborahK

+0

看看[文本掩码](https://github.com/text-mask/text-mask)。 – developer033

回答

1

你最好打赌这是你自己的指令。

一些简单的想法,让你去:

  • 您的指令,监控每个输入事件的主元素
  • 上输入事件,你检查输入值是否有效,如果不是,您将输入回其原来的值

或替代, *监测keydown事件和每个的keydown,检查的关键是有效的关键 - 如果不是,设置您的输入回ŧ o其旧值

这是基本的方法。你可以看看highlight directive example in the angular docs作为开始的指南。

2

随着近期Angular4释放你可以使用pattern属性在本feature

<input [(ngModel)]="order.name" pattern="" /> 

在你应该使用自定义指令处理它的其他情况下提到的限制字符。请参阅本【答案】对样品2

+2

我尝试使用您指出的模式属性。它使该字段显示错误,但并未阻止用户输入字符。 – BBaysinger

1

我张贴了类似的response 这里,你只需要改变正则表达式(从中删除号码,也许阿拉伯字符)。希望能帮助到你。

相关问题