隐藏 jquery 日期选择器并在移动设备中显示本机

Hide jquery datepicker and show native in mobile

我正在使用 jquery-ui 的日期选择器。 我的输入是 type=text。我只想在桌面上显示日期选择器,但在移动浏览器中我想显示本机日期选择器。 如果我输入 type=date 并激活日期选择器,它显然会与本机日期选择器一起显示。

如何在桌面上显示 jquery-datepicker 而在移动设备上显示本机?

您无法直接检查设备是移动设备 phone 还是桌面设备。但是,您可以检查当前浏览器是否具有本机日期选择器。

使用modernizer检查目标浏览器是否有本地日期选择器。然后,仅当它没有本机日期选择器时才使用 jQuery UI 日期选择器。你可以这样实现:

<label>Date <input type="date"></label>

<script>
if(!Modernizr.inputtypes.date){
     $(’input[type=date]’).datepicker({
         // Consistent format 
         dateFormat: ’yy-mm-dd’
     });
}
</script>

如果浏览器有本机日期选择器,则格式始终为 YYYY-MM-DD(参见 Is there any way to change input type="date" format?),因此应设置 jQuery UI 日期选择器的格式也到 YYYY-MM-DD.

我也建议看看这个article

请注意,如果目标设备是 !Modernizr.touch 的触摸设备,您还可以使用 Modernizr 进行检查。然而,这没有用,因为存在没有原生日期选择器的触摸设备(现实场景:使用 firefox 的带触摸屏的台式计算机)。