Ответ 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);
}