]> source.dussan.org Git - jquery-ui.git/commitdiff
Fixed 3146 Inconsistent year/month change notify
authorKeith Wood <kbwood.au@gmail.com>
Sat, 2 Aug 2008 04:05:41 +0000 (04:05 +0000)
committerKeith Wood <kbwood.au@gmail.com>
Sat, 2 Aug 2008 04:05:41 +0000 (04:05 +0000)
ui/ui.datepicker.js

index eafc8ff05e1d0c8bbe6c2cd5e1eb5d5bf8070f13..4a1892698aeba7f167f42d17312c4c80cc486f13 100644 (file)
@@ -698,8 +698,8 @@ $.extend(Datepicker.prototype, {
                inst.drawMonth = inst.selectedMonth = date.getMonth();
                inst.drawYear = inst.selectedYear = date.getFullYear();
                }
-               this._adjustDate(target);
                this._notifyChange(inst);
+               this._adjustDate(target);
        },
 
        /* Action for selecting a new month/year. */
@@ -707,10 +707,11 @@ $.extend(Datepicker.prototype, {
                var target = $(id);
                var inst = $.data(target[0], PROP_NAME);
                inst._selectingMonthYear = false;
-               inst[period == 'M' ? 'drawMonth' : 'drawYear'] =
-                       select.options[select.selectedIndex].value - 0;
-               this._adjustDate(target);
+               inst['selected' + (period == 'M' ? 'Month' : 'Year')] =
+               inst['draw' + (period == 'M' ? 'Month' : 'Year')] =
+                       parseInt(select.options[select.selectedIndex].value);
                this._notifyChange(inst);
+               this._adjustDate(target);
        },
 
        /* Restore input focus after not changing month/year. */
@@ -1228,6 +1229,8 @@ $.extend(Datepicker.prototype, {
        /* Set the date(s) directly. */
        _setDate: function(inst, date, endDate) {
                var clear = !(date);
+               var origMonth = inst.selectedMonth;
+               var origYear = inst.selectedYear;
                date = this._determineDate(date, new Date());
                inst.selectedDay = inst.currentDay = date.getDate();
                inst.drawMonth = inst.selectedMonth = inst.currentMonth = date.getMonth();
@@ -1244,6 +1247,8 @@ $.extend(Datepicker.prototype, {
                                inst.endYear = inst.currentYear;
                        }
                }
+               if (origMonth != inst.selectedMonth || origYear != inst.selectedYear)
+                       this._notifyChange(inst);
                this._adjustInstDate(inst);
                if (inst.input)
                        inst.input.val(clear ? '' : this._formatDate(inst) +