HTML5日期输入类型干扰jQuery Datepicker

时间:2012-07-02 16:44:53

标签: html5 jquery-ui

我正在使用jQuery UI的datepicker在我的网站上进行日期选择。我的一位用户刚刚升级到Chrome的最新版本,该版本内置了HTML5的原生日期选择器。两个UI相互重叠的大问题。另一个问题是当用户提交日期时,数据库中的日期将恢复为" 0000-00-00"并且正在产生不良数据。

如果删除jQuery日期选择器,大多数不使用最新浏览器的用户将没有弹出日期选择器。并且,拥有最新浏览器的用户将有两个重叠的日历,这会破坏应用程序。我的问题是如何禁用最新的浏览器显示内置日期函数并继续使用jQuery Datepicker?

3 个答案:

答案 0 :(得分:38)

使用Modernizr或类似的库来检测浏览器是否支持input type=date,然后加载jQuery UI datepicker,如果不支持的话。

if (!Modernizr.inputtypes.date) {
    $('input[type=date]').datepicker();
}

答案 1 :(得分:1)

从使用input[type=date]切换到input[type=text]或使用Modernizr检测对本机日期选择器的支持。我在这里写了一篇关于这两个选项含义的帖子 - http://tjvantoll.com/2012/06/30/creating-a-native-html5-datepicker-with-a-fallback-to-jquery-ui/

答案 2 :(得分:0)

有时您无法修改表单类型。例如,我正在使用Symfony2 Bundle的FormType。

我使用Genemu jQuery Datepicker遇到了这个问题,我解决了这个问题,添加了一个日历图像按钮和一小撮css代码。

You can see final result in this link

您可以在此处阅读添加图片图标的文档:jQuery UI Datepicker

然后,我简单地添加了这样的CSS(也许样式规则对你来说不同):

form input[type=date] + img {
    position: relative;
    left: -25px;
}