Итак, вот мое решение (аналогично ответу Джона Вэнса):
Сначала зайдите сюда и получите функцию для обнаружения мобильных браузеров.
http://detectmobilebrowsers.com/
У них есть много разных способов определения, если вы находитесь на мобильном телефоне, поэтому найдите тот, который работает с тем, что вы используете.
Ваша HTML-страница (псевдокод):
If Mobile Then
<input id="selling-date" type="date" placeholder="YYYY-MM-DD" max="2999-12-31" min="2010-01-01" value="2015-01-01" />
else
<input id="selling-date" type="text" class="date-picker" readonly="readonly" placeholder="YYYY-MM-DD" max="2999-12-31" min="2010-01-01" value="2015-01-01" />
JQuery:
$( ".date-picker" ).each(function() {
var min = $( this ).attr("min");
var max = $( this ).attr("max");
$( this ).datepicker({
dateFormat: "yy-mm-dd",
minDate: min,
maxDate: max
});
});
Таким образом, вы все еще можете использовать собственные селекторы дат в мобильном телефоне, в то же время устанавливая минимальную и максимальную даты в любом случае.
Поле для non-mobile должно быть доступно только для чтения, потому что, если мобильный браузер, такой как chrome для ios, «запрашивает версию для ПК», они могут обойти мобильную проверку, и вы по-прежнему хотите предотвратить отображение клавиатуры.
Однако, если поле доступно только для чтения, пользователю может показаться, что он не может изменить поле. Вы можете исправить это, изменив CSS так, чтобы он выглядел так, что он не только для чтения (т. Е. Измените цвет рамки на черный), но если вы не измените CSS для всех входных тегов, вам будет сложно поддерживать постоянный внешний вид. браузеры.
Чтобы обойти это, я просто добавляю кнопку с изображением календаря к датчику. Просто немного измените код JQuery:
$( ".date-picker" ).each(function() {
var min = $( this ).attr("min");
var max = $( this ).attr("max");
$( this ).datepicker({
dateFormat: "yy-mm-dd",
minDate: min,
maxDate: max,
showOn: "both",
buttonImage: "images/calendar.gif",
buttonImageOnly: true,
buttonText: "Select date"
});
});
Примечание: вам нужно будет найти подходящее изображение.