Подтвердить что ты не робот

Как узнать, поддерживает ли браузер <input type = 'date'>

Возможный дубликат:
Определение типа HTML5 и инициализация плагина

<input type=date>

Должен создать вход с (необязательным) пользователем-агентом, предоставленным datepicker, но его пока еще не широко поддерживали, поэтому мы используем jQuery UI Datepicker. Как мы можем позволить браузерам использовать свой собственный датпикер и вернуться к пользовательскому интерфейсу jQuery только в том случае, если браузер не имеет такой возможности?

В настоящее время я думаю, что только Opera имеет встроенный datepicker, но тест для Opera, очевидно, будет плохим. Есть ли способ, которым эта функция может быть обнаружена (если она вообще может переноситься)?

Спасибо

4b9b3361

Ответ 1

Метод ниже проверяет, поддерживается ли какой-либо тип ввода большинством браузеров:

function checkInput(type) {
    var input = document.createElement("input");
    input.setAttribute("type", type);
    return input.type == type;
}

Но, поскольку simonox указал на комментарии, некоторые браузеры (как браузеры Android для Android) притворяются, что поддерживают какой-то тип (как дату), но они делают не предлагать пользовательский интерфейс для ввода даты. Таким образом simonox улучшил реализацию, используя трюк установки недопустимого значения в поле даты. Если браузер дезинфицирует этот вход, он также может предложить дампикера!!!

function checkDateInput() {
    var input = document.createElement('input');
    input.setAttribute('type','date');

    var notADateValue = 'not-a-date';
    input.setAttribute('value', notADateValue); 

    return (input.value !== notADateValue);
}