我已经接管了某人对jQuery日期选择器调用的修改。我遇到的问题是,当我今天作为最短日期和一年后作为最大日期传递时,年份列显示2015& 2016年应该如此,但月份列仅显示本月前进至12月。本月之前的所有月份都不见了。
我不确定我传入的最新约会是否应该改为今年的第一天?或者我可以将此JavaScript更改为仍然显示所有月份,即使最小日期是今天吗?
function createDatepicker($field) {
var minDateStr = $field.attr('data-min-date').split('-');
var maxDateStr = $field.attr('data-max-date').split('-');
var minDate = new Date(parseInt(minDateStr[2]), parseInt(minDateStr[0])-1, parseInt(minDateStr[1]));
var maxDate = new Date(parseInt(maxDateStr[2]), parseInt(maxDateStr[0])-1, parseInt(maxDateStr[1]));
var div = $field.parent();
var sy = $('.datepicker-year', div).first();
var sm = $('.datepicker-month', div).first();
var sd = $('.datepicker-day', div).first();
$field.datepicker({
changeMonth: true,
changeYear: true,
yearRange: '-' + minDate.getFullYear() + ':+' + maxDate.getFullYear,
minDate: minDate,
maxDate: maxDate,
showOn: 'button',
firstDay: 1,
beforeShow: function (obj, inst) {
var year = parseInt(sy.val());
var month = parseInt(sm.val());
var day = parseInt(sd.val());
if (year > 0 && month > 0 && day > 0) {
if (month < 10) month = '0' + month;
if (day < 10) day = '0' + day;
$(obj).datepicker('setDate', month + '/' + day + '/' + year);
}
},
onClose: function (dateText, inst) {
if (dateText != undefined && dateText.length > 0) {
var date = dateText.split('/');
var year = parseInt(date[2]);
var month = parseInt(date[0]);
var day = parseInt(date[1]);
sy.val(year);
sm.val(month);
sd.val(day);
}
}
});
}
答案 0 :(得分:0)
尝试摆脱这一行:
yearRange: '-' + minDate.getFullYear() + ':+' + maxDate.getFullYear,
为我工作。