İşte benim çözümüm (John Vance'in cevabına benzer):
Önce buraya gidin ve mobil tarayıcıları algılamak için bir işlev edinin.
http://detectmobilebrowsers.com/
Mobil cihazda olup olmadığınızı tespit etmenin birçok farklı yolu vardır, bu nedenle kullandığınızla çalışan bir tane bulun.
HTML sayfanız (sözde kod):
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
});
});
Bu şekilde, mobil cihazlarda yerel tarih seçicileri kullanmaya devam ederken minimum ve maksimum tarihleri her iki şekilde de ayarlayabilirsiniz.
Mobil olmayanlar için alan yalnızca okunmalıdır, çünkü ios için Chrome gibi bir mobil tarayıcı "masaüstü sürümü isterse" mobil kontrolü aşabilir ve yine de klavyenin görünmesini engellemek isteyebilirsiniz.
Ancak alan salt okunursa, kullanıcıya alanı değiştiremeyecekmiş gibi bakabilir. Bunu, CSS'yi salt okunur gibi görünmeyecek şekilde değiştirerek düzeltebilirsiniz (yani, kenarlık rengini siyaha çevirebilirsiniz), ancak tüm giriş etiketleri için CSS'yi değiştirmediğiniz sürece, görünümü tutarlı tutmakta zorlanacaksınız. tarayıcılar.
Tarih seçiciye bir takvim resmi düğmesi eklemem yeterli. JQuery kodunuzu biraz değiştirin:
$( ".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"
});
});
Not: uygun bir resim bulmanız gerekecek.