2012-12-28 59 views
7

問題AngularJs:如何在輸入中格式化數據?

我需要,以幫助用戶知道他們應該鍵入一個電話號碼視覺格式的輸入字段。例如,我想接受一個電話號碼作爲3位區號,3位數前綴和4位後綴:(207)555-1212。我想:

  1. 提供輔助格式輸入字段 - 這些括號和連字符
  2. 我不想被列入我保存在我的模型的實際數據的「助手」字符。
  3. 當用戶鍵入時,我想讓括號神奇地出現,然後連字符也出現在正確的位置。

這樣做的最佳方法是什麼?

注意:這不是用於顯示一個數字 - 我可以使用過濾器。這用於格式化input字段中的數據。

感謝您的幫助!

+0

也許你需要一個自定義的輸入字段(一個小部件)? – akonsu

回答

14

如果你正在尋找一個簡單的解決方案,你可以給AngularUI一試,http://angular-ui.github.com/

這是從該網頁的「面具」部分的示例:

<input ng-model="maskDemo" ui-mask="'99-99-9999'"> 

的「9」是數字,其他的東西只是一個面具/佔位符。它只應提交實際值。您將編輯蒙版以包含圓括號和其他任何您可能需要的內容。

+0

唯一的缺點是,當電話號碼在別處查看或保存在數據庫中時,它看起來像「9999999999」。 – MyCodeSucks

+8

@MyCodeSucks這通常是你想要的,去除任何非數字,然後任何時候你想顯示你的格式化的數字,你只需將'ui-mask'應用到它。 –

相關問題