如果是移动设备,则更改输入类型值

时间:2016-02-25 16:14:07

标签: javascript jquery html jquery-ui

伙计们我使用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>

1 个答案:

答案 0 :(得分:2)

您可以检查所有类似的触控设备:

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