2017-03-31 198 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 這裏,你只需要改變正則表達式(從中刪除號碼,也許阿拉伯字符)。希望能幫助到你。

相關問題