今天遇到了一個比較棘手的問題,事情是這樣的: 咱有一個添加地址的頁面,大概長這樣: 收貨地址後那個“請選擇收貨地址”是一個readonly的input, 咱一進頁面,直接點擊這個“請選擇收貨地址”是完全看不出任何毛病的, 但是按照大家的習慣啊,當然是一個一個往下填, 這時問題就來了,安卓手機是正常的 ...
今天遇到了一個比較棘手的問題,事情是這樣的:
咱有一個添加地址的頁面,大概長這樣:
收貨地址後那個“請選擇收貨地址”是一個readonly的input,
咱一進頁面,直接點擊這個“請選擇收貨地址”是完全看不出任何毛病的,
但是按照大家的習慣啊,當然是一個一個往下填,
這時問題就來了,安卓手機是正常的,顯示這樣:
可蘋果手機不一樣了,
咱輸了手機號碼,點“請選擇收貨地址”,
這時候,本該關閉的虛擬鍵盤依然呆在屏幕上,彈出的地址選擇器部分顯示在虛擬鍵盤上方,整個頁面顯得擁擠不堪,(這裡沒法截圖啊!)
那麼,如何讓這個虛擬鍵盤關閉就成了一個燒腦的問題了,
於是嘗試了網上的各種辦法:
①給它加個 -webkit-user-select:none 的style,結果並沒有任何變化,pass
②給它加個disabled屬性,結果點擊的時候虛擬鍵盤確實沒有了,可地址選擇器也不出現了,pass
③那就吧input改成span吧?可是依然出現原來那個問題,在這裡終於發現了一個現象,當我們點擊這個“請選擇收貨地址”,游標居然還停在剛纔輸入手機號的那個框裡頭,這會兒有了點眉目了
④那接著③繼續加,在“請選擇收貨地址”的點擊事件里第一行加個this.focus();乖乖,還是不行,具體什麼情況記不清啦,pass
⑤於是接著百度了一下:終於在百度知道https://zhidao.baidu.com/question/1240497270717962459.html找到了答案,即
嘗試讓獲取焦點的元素失去焦點,document.activeElement.blur();
同樣,是在“請選擇收貨地址”的點擊事件里第一行加的,一試,果然完美解決了,
接著又把span改回了原來的input,也運行正常!!!