我使用 jquery datepicker (v1.8.20),日期格式设置为“D MM d”,如下所示:“Wed September 12”。当我从日历中选择与当前年份不同的年份时,getDate 方法会返回当前年份。此外,当我再次打开日历时,选定的日期和月份都被保留,但当前日期的年份被更改。通常,当日期格式不包含年份时,它看起来像是设置为当前年份。知道如何解决吗?
问问题
2106 次
1 回答
3
Datepicker 仅在输入元素中存储值,因此如果格式字符串中没有年份,datepicker 只是不存储它。此处jquery.ui 开发人员之一说,这不是错误,“Datepicker 仅用于选择完整日期”。
无论如何,我在我的项目中遇到了同样的问题,并通过丑陋的技巧解决了它,这迫使 datepicker 存储完整日期:
(function($) {
$.datepicker._selectDateParent = $.datepicker._selectDate;
$.datepicker._adjustInstDateParent = $.datepicker._adjustInstDate;
$.datepicker._adjustInstDate = function(inst, offset, period) {
var fullDate = inst.input.data('fullDate');
if(fullDate && !period) {
inst.drawYear = inst.currentYear = fullDate.getFullYear();
}
this._adjustInstDateParent(inst, offset, period);
};
$.datepicker._selectDate = function(id, dateStr) {
var target = $(id);
var inst = this._getInst(target[0]);
var date = this._daylightSavingAdjust(new Date(inst.currentYear, inst.currentMonth, inst.currentDay));
inst.input.data('fullDate', date);
this._selectDateParent(id, dateStr);
}
})(jQuery);
我只用 datepicker 1.9.0+ 对其进行了测试,我不确定这是一个很好的解决方案,但它对我有用:)
于 2012-11-27T15:34:02.420 回答