IE输入类型日期不显示为日期选择器[重复]

Posted

技术标签:

【中文标题】IE输入类型日期不显示为日期选择器[重复]【英文标题】:IE Input type Date not appearing as Date Picker [duplicate] 【发布时间】:2015-09-02 18:50:55 【问题描述】:

我在 html 中使用输入类型 DATE,在 Chrome 和 Firefox 中一切正常,但 IE 不显示日期选择器。

当我使用 JQuery Datepicker 时,我会在 Chrome 和 Firefox 中看到两个日期选择器对话框。

如何修复我可以使用日期输入类型并且我的表单只有一个弹出窗口的功能?

【问题讨论】:

【参考方案1】:

您需要使用polyfill 以便输入类型 DATE 在所有浏览器中具有一致的行为。您可以将此webshim 用作polyfill。

输入类型 DATE 是一种 HTML5 功能,并非所有浏览器都支持。如果您想使用浏览器(通常是 IE)不支持的 HTML5 功能,请使用以下两件事:

特征检测 Polyfills

特征检测能够确定我们的浏览器是否支持 HTML5 功能。一个很好的库是Modernizr。您可以使用modernizr 做的是检测是否不支持您需要的任何功能,如果不支持,那么您可以有条件地加载一些将实现该功能的javascript 库。这些库被称为Polyfills。

例如,如果你想在 IE 10 中使用标签,你可以使用 jqueryui.com 控件来提供日期选择器。

Modernizr.load(
    test: Modernizr.inputtypes.date,
    nope: "js/jquery-ui.custom.js",
    callback: function() 
      $("input[type=date]").datepicker();
    
  );

Modernizr 测试是否支持该功能,您可以选择使用 nope 来指示是否有一个库,仅当该功能不支持时才需要加载,回调是测试后将调用的代码加载库后。

【讨论】:

我正在使用 .NET 4.5 并且正在加载modernizr,但该代码块不起作用。我缺少什么才能让 Modernizr.load() 工作? Javascript 错误:localhost:31124/FormManagement/ExportFormsEXCEL 0x800a01b6 第 166 行第 9 列未处理的异常 - JavaScript 运行时错误:对象不支持属性或方法“加载” 如果您是使用 Visual Studio 的 .NET 开发人员,并且一般的“Modernizr”NuGet 包不包含 Modernizr.load()。我想提示 .NETters 使用包含 load() 函数的alternative NuGet package 'Modernizr full'。 注意这行代码:nope: "js/jquery-ui.custom.js"根据jquery文件在你的项目中的位置改变路径

以上是关于IE输入类型日期不显示为日期选择器[重复]的主要内容,如果未能解决你的问题,请参考以下文章

将输入设置为日期选择器作为年份仅选择框[重复]

引导输入类型=“日期”不加载日期选择器

在html中计算两个输入类型=“日期”之间的天数[重复]

角日期选择器在IE中显示错误的年份(而不是2019年显示的是1919)

如何在日期选择器输入上显示占位符?

vbscript HTML5输入类型日期 - 为日期选择器指定默认值