如何在Firefox和/或IE 10中使用HTML 5输入类型="日期"

Sol*_*son 190 forms firefox html5 internet-explorer jquery-ui

我觉得奇怪的input type="date"是,在所有这段时间后仍然不支持Firefox.实际上,我不认为他们在输入元素上添加了很多(如果有的话)HTML 5新类型.IE10不支持它并不奇怪.所以,我的问题是......

如何type="date"使用一个input元素工作而不添加另一个.js文件(即jQueryUIDatePicker Widget)只是为了获取IE和Firefox浏览器的日历/日期?有什么东西可以应用到某个地方(可能是CDN?),这将使这个功能在Firefox和/或IE浏览器中默认工作?尝试针对IE 8+浏览器和Firefox,没关系,最新版本(28.0)会没问题.

更新:Firefox 57+支持输入类型=日期

ale*_*kas 137

你可以尝试webshims,这是可以的CDN +仅加载填充工具,如果需要的话.

这是CDN的演示:http: //jsfiddle.net/trixta/BMEc9/

<!-- cdn for modernizr, if you haven't included it already -->
<script src="http://cdn.jsdelivr.net/webshim/1.12.4/extras/modernizr-custom.js"></script>
<!-- polyfiller file to detect and load polyfills -->
<script src="http://cdn.jsdelivr.net/webshim/1.12.4/polyfiller.js"></script>
<script>
  webshims.setOptions('waitReady', false);
  webshims.setOptions('forms-ext', {types: 'date'});
  webshims.polyfill('forms forms-ext');
</script>

<input type="date" />
Run Code Online (Sandbox Code Playgroud)

如果默认配置不满足,则有许多方法可以配置它.在这里,您可以找到datepicker配置器.

注意:虽然将来可能会有针对webshim的新错误修复版本.将不会有任何重大发布.这包括对jQuery 3.0或任何新功能的支持.

  • 当我尝试在IE 11中运行此jsfiddle时,我收到"访问被拒绝"错误,并且日期选择器不起作用. (13认同)
  • 小提琴演示在IE11中不起作用 (7认同)
  • 这对IE10不起作用...我得到@Shavais提到的相同错误...让它工作将jquery版本升级到1.11或更高版本..这个[链接](https://jsfiddle.net/ nitinbhatia/500yd17u /) (4认同)
  • 不幸的是,正如作者网站上所知,即将到来的Jquery 3的webshims支持将无法完成.因此,我会依赖好的和旧的Jquery UI. (2认同)

小智 26

自版本51(2017年1月26日)起它在Firefox中,但默认情况下不会激活(尚未启动)

要激活它:

about:config中

dom.forms.datetime - >设置为true

https://developer.mozilla.org/en-US/Firefox/Experimental_features


Dax*_*Dax 20

通过使用jQuery提供的datePicker组件,有一种简单的方法来摆脱这种限制.

  1. 包括jQuery和jQuery UI库(我还在使用旧库)

    • SRC = "JS/jQuery的1.7.2.js"
    • SRC = "JS/jquery的-UI-1.7.2.js"
  2. 使用以下剪辑

    $(function() {
         $( "#id_of_the_component" ).datepicker({ dateFormat: 'yy-mm-dd'}); 
    });
    
    Run Code Online (Sandbox Code Playgroud)

如果需要,请参阅jQuery UI DatePicker - 更改日期格式.

  • OP说"工作没有添加,另一个,.js文件(即jQueryUI DatePicker Widget)"......但这个问题是google的热门话题,所以你的答案仍然非常有用,尽管它没有回答这个问题.我希望我现在不必为自己的帖子感到沮丧. (7认同)
  • 您需要包含jQuery UI CSS以及正确显示日历.<br> <link rel ="stylesheet"href ="// code.jquery.com/ui/1.12.0/themes/base/jquery-ui.css"> (2认同)

Chr*_*ove 17

此时type ="date"不是实际规范.这是谷歌提出的一个概念,并且符合他们的规范(非官方),并且只有部分Chrome支持.

http://caniuse.com/#search=date

此时我不会依赖此输入类型.这将是很好的,但我不预见这个实际上是这样做的.第一个原因是它给浏览器带来了太多负担,以确定一个有点复杂的输入的最佳UI.从响应的角度考虑一下,任何供应商如何知道什么最适合您的UI,如400像素,800像素和1200像素宽?

  • 我不同意,浏览器应该足够聪明才能弄清楚这一点.我真的很累在那里使用日期选择器并且不得不继续更新它们. (137认同)
  • 奇怪的推理.浏览器负担过重,但不适用于joe web开发人员?!? (48认同)
  • 这是HTML 5工作草案的一部分:http://www.w3.org/html/wg/drafts/html/master/forms.html#date-state-%28type=date%29 (35认同)
  • 我也很高兴每种新的输入类型.它们更好地定义,并且是原生的,通常意味着快速. (7认同)
  • @MM谢谢.同时,HTML 5已升级为官方W3C推荐.新链接是http://www.w3.org/TR/2014/REC-html5-20141028/forms.html#date-state-%28type=date%29 (5认同)
  • @Chris希望HTML 6能够专注于有用而不是营销......日期选择器是一种基本控制. (3认同)

dro*_*ooh 9

这是一个完整的示例,其日期格式为YYYY-MM-DD

<script type="text/javascript" src="http://code.jquery.com/jquery-2.1.4.min.js"></script> 
<script src="//cdn.jsdelivr.net/webshim/1.14.5/polyfiller.js"></script>
<script>
webshims.setOptions('forms-ext', {types: 'date'});
webshims.polyfill('forms forms-ext');
$.webshims.formcfg = {
en: {
    dFormat: '-',
    dateSigns: '-',
    patterns: {
        d: "yy-mm-dd"
    }
}
};
</script>
<input type="date" />
Run Code Online (Sandbox Code Playgroud)