Możliwy duplikat:
wykrywanie typu HTML5 i inicjalizacja wtyczki
<input type=date>
Powinien utworzyć dane wejściowe z (opcjonalnym) selektorem daty dostarczonym przez klienta użytkownika, ale nie jest jeszcze szeroko obsługiwany, więc używamy jQuery UI Datepicker. Jak możemy pozwolić przeglądarkom na używanie ich własnego datepickera i korzystanie z interfejsu użytkownika jQuery tylko wtedy, gdy przeglądarka tego nie posiada?
Obecnie myślę, że tylko Opera ma wbudowany datepicker, ale test dla Opery byłby oczywiście zły. Czy istnieje sposób, w jaki można wykryć tę funkcję (jeśli w ogóle można ją przenośnie)?
javascript
html
DaedalusFall
źródło
źródło
<input class=datepicker>
i zawsze używam jquery ui datepicker (staromodny sposób).Odpowiedzi:
Poniższa metoda sprawdza, czy jakiś typ danych wejściowych jest obsługiwany przez większość przeglądarek:
function checkInput(type) { var input = document.createElement("input"); input.setAttribute("type", type); return input.type == type; }
Ale, jak wspomniał simonox w komentarzach, niektóre przeglądarki (jako przeglądarki giełdowe Androida) udają, że obsługują jakiś typ (jako datę), ale nie oferują interfejsu użytkownika do wprowadzania daty. Dlatego simonox ulepszył implementację, wykorzystując sztuczkę polegającą na ustawieniu niedozwolonej wartości w polu daty. Jeśli przeglądarka oczyszcza to wejście, może również zaoferować wybór daty !!!
function checkDateInput() { var input = document.createElement('input'); input.setAttribute('type','date'); var notADateValue = 'not-a-date'; input.setAttribute('value', notADateValue); return (input.value !== notADateValue); }
źródło