HTML 5输入类型=“日期”在Firefox中不起作用

时间:2015-05-28 09:56:49

标签: javascript html html5 firefox feature-detection

我使用的是HTML5 <input type="date" />,它可以在Chrome中正常使用,我可以通过日历弹出窗口选择日期。

但是在Firefox中,它就像一个文本框,没有弹出日历。

经过一些研究后,我看到很少使用webshims,modenizr等解决方案......但我不想使用jQuery。

有替代方案吗?如何让它在Firefox中运行?

5 个答案:

答案 0 :(得分:23)

编辑:来自Firefox 57,<input type="date"/>partially supported

Firefox doesn't support HTML5's <input type="date"/>

您有两种选择:

  • 始终使用Javascript日期时间选择器或
  • 检查浏览器是否支持该标记,如果是,则使用它,如果没有,则返回javascript datepicker(jQuery或其他一些)。

这称为Feature DetectionModernizr是最受欢迎的库。

总是使用javascript datepicker更容易,更快,但它不适用于禁用javascript(谁关心),它会在移动设备上运行非常糟糕(这很重要),它会闻起来很旧。

使用混合方法可以让您现在涵盖每个案例,直到每个浏览器都支持HTML5日期选择器的那一天,以标准化的方式完全不需要javascript。它是面向未来的,this is especially important in mobile browsing,其中javascript日期选择器几乎无法使用。

这是一个启动示例,可以自动对每个页面的每个<input type="date"/>元素执行此操作:

<script>
    $(function(){           
        if (!Modernizr.inputtypes.date) {
        // If not native HTML5 support, fallback to jQuery datePicker
            $('input[type=date]').datepicker({
                // Consistent format with the HTML5 picker
                    dateFormat : 'yy-mm-dd'
                },
                // Localization
                $.datepicker.regional['it']
            );
        }
    });
</script>

它使用jQuery,因为我使用jQuery,但是您可以使用vanilla javascript替换jQuery部分,并使用您选择的javascript datepicker替换datepicker部分。

答案 1 :(得分:3)

现在正在运作。从Firefox 53开始,您可以通过启用<div id="error_explanation" class="alert alert-success"></div> 选项在displayError('#{error_msg}') 中激活它。请参阅http://caniuse.com/#feat=input-datetimehttps://developer.mozilla.org/en-US/Firefox/Experimental_features

答案 2 :(得分:1)

`input type="date"` is not supported on mozilla

检查link以获取支持的活动列表

答案 3 :(得分:1)

我使用6个HTML选择框,对于各种项目,使用适当值的OPTION语句:

2000-2050(或您选择的任何范围) 第1-12个月(你可以让它显示月份名称) 第1-31天 小时0-23(或使用12午夜 - 晚上11点,这只是改变显示) 分0-59 第二个0-59(或假设为0)

不需要Javascript,虽然我确实使用了一些来避免无效选择(如2月30日)。这是在月份或年份的变化时触发的。

答案 4 :(得分:-2)

你正在使用什么版本的firefox.Firefox低于30的低版本将不支持大多数html5功能和html5输入类型=&#34;日期&#34; firefox不支持。 有关详细信息,请参阅:http://caniuse.com/#feat=input-datetime

  1. firefox浏览器并不能为html5提供全面支持,但30以上版本支持大多数功能。
  2. 更方便的是使用jquery或bootstrap datetimepicker来选择date.It将在所有浏览器类型上受支持。