使用MUI的日期控件引起的探索——HTML5 input類型date屬性


   我寫移動端的頁面會用到MUI這個框架,個人覺得挺好用的,有很多實用的UI組件。當然坑還是有的,http://dev.dcloud.net.cn/mui/ui/ MUI官網,有興趣的小伙伴可以看看

 雖然MUI也有自帶的日歷控件,但后台同事反映和后台數據交互起來比較麻煩,然后我就想到了用H5 input類型date屬性。

 使用H5 input類型的date屬性,添加<input type="month" name="" />(顯示年月)即可,會直接調用IOS和安卓手機上自帶的本地日歷控件。雖然H5的很多新屬性在PC端的某些瀏覽器還不能很好的支持,同一個屬性不同的瀏覽器可能解析也不一樣;但移動端對H5的屬性支持還是不錯的,不用考慮太多瀏覽器的問題,主要就是IOS和安卓的適配。

   更多 H5 Input 類型請參考http://www.w3school.com.cn/html5/html_5_form_input_types.asp

 

注:使用H5 input date 屬性以后還需要給確定按鈕綁定change事件。這是因為點擊日期以后,彈出日歷選框(下圖藍色框部分),想等用戶選擇一個日期,選擇確定以后在顯示(下圖紅色框部分)同時把相應的數據加載出來,但是現在點了以后,彈出的選框(下圖藍色框部分)在滾動選擇日期時候,(下圖紅色框部分)也會同步顯示選擇的日期,這樣每次都會加載數據,造成不必要的請求,從而導致加載緩慢。

 

 

注:使用MUI的日歷組件沒有這個問題,下面隨意滾動選擇日期,上面的日期也不會變,等你點擊確認以后才會變。

 

 

IOS和安卓手機調用自帶本地日歷控件顯示的樣式是不一樣的,這個也沒辦法統一,如果想要統一的樣式,那就只有找其他插件來代替了

推薦https://github.com/xfhxbb/lCalendar 這個博主寫的日歷插件,不依賴任何庫,體積小(壓縮過的js文件大概10多KB),使用簡單。

注:如果需要統一IOS和安卓的日歷控件樣式,推薦使用 My97DatePicker(日期選擇插件)

之前我也寫過一篇相關博客http://www.cnblogs.com/tu-0718/p/6920408.html

 

 

IOS本地調用日歷控件截圖:

安卓本地調用日歷控件截圖:

 

補充說明:如果使用了H5 input的date屬性,經本人測試在IOS上沒有什么問題,但是系統比較老的安卓手機上會出現設置了<input type="month" />屬性時,依然會顯示年月日,如下截圖:

如果要兼容這些老版本系統的安卓手機,我能想到的辦法還是只有用插件,上面我推薦的那個博主寫的插件可以解決這個問題,如果哪位大神有更好的辦法歡迎留言給予指點

 

注:使用了H5 input date屬性以后,如果是在瀏覽器上(比如谷歌)查看顯示效果的話,是這樣的(如下圖);但不要擔心,實際經本人測試在手機上查看的時候,(IOS和安卓手機)顯示的是我上面截圖的效果

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM