我在StackOverflow上閱讀了關於如何使用「格式化程序」和「分析程序」以允許用戶在輸入中輸入值,然後在模型中轉換該輸入的問題和解答。使用Angular幫助用戶以某種格式輸入數據?
我有一個稍微不同的要求。
我希望幫助並強制用戶以某種格式輸入輸入。換句話說,顯示器和模型應該完全匹配,但用戶應限制以指定格式輸入數據。
要使用一個常見的例子,我希望用戶在下面的格式輸入十位電話號碼:
(xxx)xxx-xxxx
從一個jQuery背景的,我知道我可以一個事件附加到輸入的「更改」事件處理程序並執行字符串處理,以便在輸入中查找十位數字,並按指定的格式對其進行格式化,或者如果數字中不包含十位數字,則會向用戶顯示錯誤。
我也知道我可以使用Angular對輸入進行限制,以便表單不會提交,除非輸入的格式符合規範。這具有的主要缺點是用戶可能會填寫整個表單,然後被告知對前一個字段進行更改,從而中斷用戶的工作流程。
我想更進一步,一旦鍵入號碼就自動格式化數字。Angular的哪些功能最適合此任務?
使用案例:用戶輸入「9006345789」。代碼應該或者當用戶鍵入數字時,或者當用戶將焦點從輸入移開時,用「(900)634-5789」代替「9006345789」。如果用戶輸入「900-634-5789」或「900.634.5789」或任何其他具有十位數字的輸入,結果應該是相同的。
請記住,電話號碼示例是許多格式化示例之一,我希望我的代碼可以重複使用。
什麼輸入型數字強制用戶只輸入數字。你可以在使用過濾器將它發送到服務器時對其進行格式化。你真的需要重新格式化以向用戶顯示預期的格式嗎? – Okazari
@Okazari,這是要求給我的方式。 –
您是否想要即時更改價值或輸入失去焦點時? –