2016-02-25 65 views
1

夥計們我正在使用jquery UI庫進行日期選擇和時間選擇器插件。 所有在PC上的工作,但我想要input typetext改爲datetime如果是移動設備更改輸入類型值

當我在移動設備上測試時,我希望移動設備使用默認的日期時間選擇器(滾動條)。

默認情況下,我只是用簡單的代碼用於顯示對話框

$('.datepicker').datepicker(); 
$('.timepicker').timepicker(); 

所以是有可能檢查它是否是一個移動設備?如果是更改日期或時間類型。

我嘗試創建功能,如果用戶與移動設備連接,將檢測到,但它不工作

if(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) { 
     var date = document.getElementById('datepicker'); 
     date.setAttribute('type','date'); 
} 

但此功能工作時,我檢查它是否是移動

function isMobile() { return ('ontouchstart' in document.documentElement); } 

下面是完整的工作代碼:

<script> 
    (function() { 
     var date = $(".datepicker"); 
     var time = $(".timepicker"); 
     var isTouchDevice = 'ontouchstart' in document.documentElement; 

     if (isTouchDevice) { 
      date.attr("type", "date"); 
      time.attr("type", "time"); 

     } else { 
      date.attr("type", "text"); 
      $('.datepicker').datepicker(); 
      $('.timepicker').timepicker(); 
     } 

    })(); 

</script> 
+0

此外,這是一個有點多餘申報isMobile()函數,因爲我宣佈(isTouchDevice)的變種已經將返回移動真實,在非移動誤導。 – SISYN

回答

2

你可以檢查所有觸摸設備是這樣的:

var isTouchDevice = 'ontouchstart' in document.documentElement; 
if (isTouchDevice) { 
    // do mobile handling 
    var date = $('.datepicker'); 
    date.attr('type','date'); 
} else { 
    // do default handling 
} 
+0

在一段時間後你的職位和我新的更新..檢查它...我嘗試這個和我的更新,輸入類型不會再改變它'type = text' – Ivan

+0

嘗試我更新的答案與jQuery $('。 datepicker')選擇器。問題是,您試圖通過id「datepicker」獲取「datepicker」,但「datepicker」是CLASS而非ID。句號(。)表示類,英鎊符號(#)表示ID。另外,如果您可以訪問https://jsfiddle.net併爲您的問題創建一個示例,那麼其他人也可以從中學習。 – SISYN

+0

是用'jQuery.attr()'工作的。謝謝 – Ivan