[討論] 表單電話欄位的輸入格式

作者: jack82822005 (小郭郭)   2019-06-25 19:59:06
最近因為碩論招募受試者,需要先進行一些測驗篩選,所以架了個網站,
讓志願者可以註冊帳號,線上測驗。
其中註冊表單中的電話欄位<input type='tel' id='mobilePhone'>
為了讓格式整齊,所以限制使用者只能輸入09xx-xxx-xxx的形式
沒想到,有 iphone / safari 的使用者跟我說,電話欄位的鍵盤沒辦法輸入 "-"
讓我驚訝不已XD
無奈只好寫個函式來幫忙加 hyphen
...
function addHyphen() {
let re = /(\d{4})(\d{3})(\d{3})/;
if (!this.value.search(re))
this.value = this.value.replace(re, '$1-$2-$3');
}
...
document.querySelector('#mobilePhone').oninput = addHyphen;
...
好奇各位大大有沒有類似的經驗呢?
又有甚麼解決方案呢?
作者: kurtisgod (蹦蹦蹦)   2019-06-25 20:18:00
前端大概就這解法了 不然就後端處理 但我會選不加-
作者: vi000246 (Vi)   2019-06-25 21:09:00
加了要幹嘛 要render出來時再自己格式化就好
作者: shter (飛梭之影)   2019-06-25 21:25:00
不應該加-,或者說不應該叫使用者輸入 -使用者應該只要輸入數字,顯示格式是你自己要在相對位置加-
作者: kurtisgod (蹦蹦蹦)   2019-06-25 23:48:00
如果是資料量大的網站 後端應該會叫說為何要多存三個-
作者: bill0205 (善良的小孩沒人愛)   2019-06-26 08:20:00
正規多判斷0到1個- 我都這樣判斷有時候User還會輸入(XX)XXXX-XXXX我都強制規定只能使用-或是#(分機)
作者: nottt (無)   2019-06-26 19:28:00
我是用jquery mask這個套件來處理
作者: newversion (海納百川)   2019-06-26 20:02:00
像信用卡, 輸入純數字 (自動加 - 只是方便閱讀)
作者: my1938 (不知道該說什麼)   2019-06-27 01:45:00
前端自動加-是方便使用者閱讀,但資料送進後端,如果是我的話,會再把-拿掉再存進去,就資料儲存來講,比較直覺,而且不用多儲存三個字元
作者: eight0 (欸XD)   2019-06-27 19:56:00
真的想做的話可以這樣 https://is.gd/Xxer6n不過這是IE8時代的產物,我不確定它是否可以用在手機上
作者: oToToT (屁孩)   2019-06-27 20:50:00
加-搞不好還會有使用者打成全形的
作者: kattte (誠實面對自己吧!)   2019-06-30 18:36:00
千萬不要加 - ,前端越單純越好

Links booklink

Contact Us: admin [ a t ] ucptt.com