mirror of
https://github.com/jquery/jquery-ui.git
synced 2025-01-07 20:34:24 +00:00
Datepicker: Apply min/max settings on setDate
This commit is contained in:
parent
1f2dcf8af9
commit
f754cf1111
@ -1148,12 +1148,8 @@ $.extend(Datepicker.prototype, {
|
||||
|
||||
/* Retrieve the default date shown on opening. */
|
||||
_getDefaultDate: function(inst) {
|
||||
var date = this._determineDate(this._get(inst, 'defaultDate'), new Date());
|
||||
var minDate = this._getMinMaxDate(inst, 'min', true);
|
||||
var maxDate = this._getMinMaxDate(inst, 'max');
|
||||
date = (minDate && date < minDate ? minDate : date);
|
||||
date = (maxDate && date > maxDate ? maxDate : date);
|
||||
return date;
|
||||
return this._restrictMinMax(inst,
|
||||
this._determineDate(this._get(inst, 'defaultDate'), new Date()));
|
||||
},
|
||||
|
||||
/* A date may be specified as an exact value or a relative one. */
|
||||
@ -1219,7 +1215,7 @@ $.extend(Datepicker.prototype, {
|
||||
var clear = !(date);
|
||||
var origMonth = inst.selectedMonth;
|
||||
var origYear = inst.selectedYear;
|
||||
date = this._determineDate(date, new Date());
|
||||
date = this._restrictMinMax(inst, this._determineDate(date, new Date()));
|
||||
inst.selectedDay = inst.currentDay = date.getDate();
|
||||
inst.drawMonth = inst.selectedMonth = inst.currentMonth = date.getMonth();
|
||||
inst.drawYear = inst.selectedYear = inst.currentYear = date.getFullYear();
|
||||
@ -1470,12 +1466,8 @@ $.extend(Datepicker.prototype, {
|
||||
var month = inst.drawMonth + (period == 'M' ? offset : 0);
|
||||
var day = Math.min(inst.selectedDay, this._getDaysInMonth(year, month)) +
|
||||
(period == 'D' ? offset : 0);
|
||||
var date = this._daylightSavingAdjust(new Date(year, month, day));
|
||||
// ensure it is within the bounds set
|
||||
var minDate = this._getMinMaxDate(inst, 'min', true);
|
||||
var maxDate = this._getMinMaxDate(inst, 'max');
|
||||
date = (minDate && date < minDate ? minDate : date);
|
||||
date = (maxDate && date > maxDate ? maxDate : date);
|
||||
var date = this._restrictMinMax(inst,
|
||||
this._daylightSavingAdjust(new Date(year, month, day)));
|
||||
inst.selectedDay = date.getDate();
|
||||
inst.drawMonth = inst.selectedMonth = date.getMonth();
|
||||
inst.drawYear = inst.selectedYear = date.getFullYear();
|
||||
@ -1483,6 +1475,15 @@ $.extend(Datepicker.prototype, {
|
||||
this._notifyChange(inst);
|
||||
},
|
||||
|
||||
/* Ensure a date is within any min/max bounds. */
|
||||
_restrictMinMax: function(inst, date) {
|
||||
var minDate = this._getMinMaxDate(inst, 'min');
|
||||
var maxDate = this._getMinMaxDate(inst, 'max');
|
||||
date = (minDate && date < minDate ? minDate : date);
|
||||
date = (maxDate && date > maxDate ? maxDate : date);
|
||||
return date;
|
||||
},
|
||||
|
||||
/* Notify change of month/year. */
|
||||
_notifyChange: function(inst) {
|
||||
var onChange = this._get(inst, 'onChangeMonthYear');
|
||||
|
Loading…
Reference in New Issue
Block a user