Próbuję ustawić domyślną datę dla Datepicker Jquery na init. Tu jest mój HTML:Datepicker set default date
var content = "";
content = "<table class=\"filter-table\">";
content += "<tr><td><label for='startDate'>From </label></td><td><input name='startDate' id='startDate' class='date-picker' /></td></tr>";
content += "<tr><td> </td></tr>";
content += "<tr><td><label for='endDate'>To </label></td><td><input name='endDate' id='endDate' class='date-picker' /></td></tr>";
A moja JavaScript:
<script type="text/javascript">
function showdatepicker() {
$('.date-picker').datepicker({
changeMonth: true,
changeYear: true,
changeDay: true,
showButtonPanel: true,
dateFormat: 'yy-mm-dd',
onClose: function(dateText, inst) {
var day = $("#ui-datepicker-div .ui-datepicker-day :selected").val();
var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
$('#startDate').datepicker({defaultDate: -30});
$('#endDate').datepicker({defaultDate: new Date()});
}
});
}
</script>
Co staram się zrobić, to ustawić datę i show w polu tekstowym Gdy na załadować stronę. Data końcowa powinna być bieżącą datą, a data rozpoczęcia powinna wynosić jeden miesiąc wcześniej. Jednak za pomocą tych kodów nie wyświetla daty w polu tekstowym przy pierwszym załadowaniu.
Zastanawiam się, dlaczego tak się dzieje. Z góry dziękuję.
Działa, dzięki. Więc zasadniczo muszę wykonać dwie różne funkcje dla dwóch różnych celów? –
Cóż, możesz go zmodyfi- kować, aby zachować rzeczy [DRY] (http://en.wikipedia.org/wiki/Don't_repeat_yourself). Przydatna może być także lepsza biblioteka do zarządzania datami, np. [MomentJS] (http://momentjs.com), dzięki której łatwiej jest budować daty, biorąc pod uwagę wszystko jak lata przestępne, dni w miesiącu, itp. Moja metoda nie całkiem to zrobiła, teraz rozumiem. – GregL
Jeśli po prostu uruchamiasz ten kod po wczytaniu strony, umieść go wewnątrz bloku '$ (function() {') – Wireblue