javascript - Chrome 上的原生日期选择器和 IE/Firefox 的回退

标签 javascript angularjs datepicker

随着 HTML5 出现了一组新的输入类型。其中之一是 date,在 Chrome 中,此输入会生成一个不错的 native 日期选择器,如下所示。

Datepicker

它还在移动设备上提供 native 日期选择器,这是我使用新输入类型的主要优点。

但是,在 Firefox (23.0.1) 和 IE (10) 上, native 日期选择器不会出现,输入被视为普通文本输入。在这些情况下,我想回退到 Javascript 日期选择器。

这是运行 AngularJS 的站点,当前的日期选择器插件是 bootstrap-datepicker .如果浏览器支持 native 日期选择器,我禁用此插件的最简单方法是什么?我是否只需要检查浏览器是否支持 date 输入类型并在支持时禁用该插件?

最佳答案

您可以像这样进行 HTML5 功能检查:

// Determine if this browser supports the date input type.
var dateSupported = (function() {
    var el = document.createElement('input'),
        invalidVal = 'foo'; // Any value that is not a date
    el.setAttribute('type','date');
    el.setAttribute('value', invalidVal);
    // A supported browser will modify this if it is a true date field
    return el.value !== invalidVal;
}());

然后只有在 !dateSupported 时才初始化引导日期选择器。

关于javascript - Chrome 上的原生日期选择器和 IE/Firefox 的回退,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21580934/

相关文章:

javascript - 需要有关 Angular Factory 的帮助

javascript - Angular ng-model 在 JS 中未定义

Android sqlite 数据库 - 我从哪里开始,因为记事本教程已经消失了?

javascript : how to get 'utc date'

javascript - 使用 JSON 数据在 html 中填充 ul

javascript - 获取请求未满足 Angular-Express

Javascript setter / getter

html - Angular html5 模式下的服务器端更改

javascript - $(this) 在 angularJS 中不起作用

javascript - 脚本不适用于日期选择器