jquery datepicker (v1.8.20) を使用し、日付形式を「D MM d」に設定します。これは、「Wed September 12」のようになります。カレンダーから現在の年とは異なる年を選択すると、getDate メソッドは現在の年を返します。さらに、カレンダーを再度開くと、選択した日と月の両方が保持されますが、年は現在のものに変更されます。通常、日付形式に年が含まれていない場合、年は現在の年に設定されているように見えます。それを修正する方法はありますか?
質問する
2106 次
1 に答える
3
Datepickerは値を入力要素にのみ格納するため、フォーマット文字列に年がない場合、datepickerは単にそれを格納しません。ここで、jquery.ui開発者の1人は、これはバグではなく、「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);
私はdatepicker1.9.0+でのみテストしましたが、これが良い解決策であるかどうかはわかりませんが、私にとってはうまくいきます:)
于 2012-11-27T15:34:02.420 に答える