Установите параметр defaultDate
: http://jqueryui.com/demos/datepicker/#option-defaultDate
jQuery(function ($) {
var day = new Date(),
year = ((day.getMonth() - 2) < 0) ? (day.getFullYear() - 1) : day.getFullYear(),
month = ((day.getMonth() - 2) < 0) ? (12 + (day.getMonth() - 2)) : (day.getMonth() + 1),
date = day.getDate() + '-' + month + '-' + year;
$('#datepicker').datepicker({
dateFormat : 'dd-mm-yy',
defaultDate : '-2m'
}).val(date);
});
Вот демоверсия: http://jsbin.com/ezuxen/edit#javascript,html,live
Вот краткий обзор некоторых изменений, которые я сделалк вашему коду:
- Я передал
$
обработчику событий document.ready
, чтобы его можно было использовать внутри обработчика событий. - Дата теперь устанавливается на два месяцаназад с некоторыми условными выражениями, которые проверяют, был ли два месяца назад другой год.
- Я связал вызовы к объекту
$('#datepicker')
jQuery, поэтому его не нужно было выбирать более одного раза. - Я также разделяю объявления ваших переменных вместо того, чтобы повторно использовать оператор
var
back-to-back-to-back-to ...
Обратите внимание, что если текущая дата является31 и два месяца назад нет 31 дня, вероятно, это создаст проблему для этого кода.Август является единственным месяцем, в котором 31 день, а два месяца - нет (в июне 30 дней).