HTML 5 input type = "date" не работает в Firefox

Я использую HTML5 <input type="date" />, который отлично работает в Chrome, и я получаю всплывающее окно календаря, чтобы выбрать дату.

Но в firefox он действует как текстовое поле, и календарь не открывается.

После нескольких исследований я вижу несколько решений с использованием webshims, modenizr и т.д., но я не хочу использовать jQuery.

Есть ли альтернатива для этого? Как я могу заставить его работать в Firefox?

Ответ 1

EDIT: из Firefox 57, <input type="date"/> поддерживается .


Firefox пока не поддерживает HTML5 <input type="date"/>.

У вас есть два варианта:

  • всегда используйте сборщик datetime для Javascript или
  • проверьте, поддерживает ли браузер этот тег, если да его использует, если нет, то резерв на javascript datepicker (jQuery или какой-либо другой).

Это называется Обнаружение функций и Modernizr - самая популярная библиотека для этого.

Использование всегда javascript datepicker проще и быстрее, но он не будет работать с отключенным javascript (кто заботится), он будет очень плохо работать на мобильном телефоне (это важно), и он будет пахнуть старым.

Использование гибридного подхода вместо этого позволит вам охватить все случаи сейчас, вплоть до того дня, когда каждый браузер будет поддерживать дату-пиккер HTML5, стандартизированным образом и без необходимости использования javascript вообще. Это надежное будущее, и это особенно важно при просмотре мобильных телефонов, где jappictary datepickers практически непригодны для использования.

Это пример запуска для каждого элемента <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, но вы можете подставить части jQuery с помощью javascript ванили, а часть datepicker с помощью japcript-datepicker по вашему выбору.

Ответ 3

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

проверьте ссылку для списка поддерживаемых событий

Ответ 4

Я использую 6 выбранных HTML-элементов для разных элементов с инструкциями OPTION для правильных значений:

год 2000-2050 (или любой диапазон, который вы выберете) месяц 1-12 (вы можете указать, чтобы он показывал имена месяцев) день 1-31 час 0-23 (или использовать 12 полночь - 11 вечера, это просто изменяет отображение) минута 0-59 второй 0-59 (или просто предположим, что 0)

Нет необходимости в Javascript, хотя я использую некоторые, чтобы избежать недействительных выборов (например, 30 февраля). Это срабатывает при изменении месяца или года.

Ответ 5

Какую версию firefox вы используете. Более низкие версии Firefox менее 30 не поддерживают большинство функций html5, а тип ввода html5 = "дата" не поддерживается в firefox. Для получения дополнительной информации см. http://caniuse.com/#feat=input-datetime.

  • Браузер Firefox не обеспечивает полную поддержку html5, но большинство функций поддерживаются в версиях выше 30.
  • Более удобным было использование jquery или bootstrap datetimepicker для выбора date.It будет поддерживаться во всех типах браузера.