Возможный дубликат:
определение типа HTML5 и инициализация плагина
<input type=date>
Должен создать ввод с (необязательным) пользовательским агентом, предоставляемым datepicker, но он еще не широко поддерживается, поэтому мы используем jQuery UI Datepicker. Как мы можем разрешить браузерам использовать свой собственный datepicker и вернуться к пользовательскому интерфейсу jQuery, только если в браузере этого нет?
В настоящее время я думаю, что только Opera имеет встроенный datepicker, но тест для Opera, очевидно, будет плохим. Есть ли способ обнаружить эту функцию (если она вообще может быть портативной)?
javascript
html
ДедалПадение
источник
источник
<input class=datepicker>
и всегда использую jquery ui datepicker (старомодный способ).Ответы:
Приведенный ниже метод проверяет, поддерживается ли какой-либо тип ввода большинством браузеров:
function checkInput(type) { var input = document.createElement("input"); input.setAttribute("type", type); return input.type == type; }
Но, как упоминалось в комментариях simonox , некоторые браузеры (например, стандартные браузеры Android) делают вид, что они поддерживают какой-то тип (например, дату), но они не предлагают пользовательский интерфейс для ввода даты. Поэтому simonox улучшил реализацию, используя уловку установки недопустимого значения в поле даты. Если браузер дезинфицирует этот ввод, он также может предложить datepicker !!!
function checkDateInput() { var input = document.createElement('input'); input.setAttribute('type','date'); var notADateValue = 'not-a-date'; input.setAttribute('value', notADateValue); return (input.value !== notADateValue); }
источник