mirror of
https://github.com/jquery/jquery-ui.git
synced 2024-11-21 11:04:24 +00:00
Datepicker: Updated the range tests so you can't navigate past the yearRange. Fixes #7362 - Datepicker allows changing year to something outside yearRange
This commit is contained in:
parent
2553d61384
commit
eca5abd873
@ -322,9 +322,10 @@ test('miscellaneous', function() {
|
||||
});
|
||||
|
||||
test('minMax', function() {
|
||||
expect( 17 );
|
||||
expect( 19 );
|
||||
var date,
|
||||
inp = TestHelpers.datepicker.init('#inp'),
|
||||
dp = $('#ui-datepicker-div'),
|
||||
lastYear = new Date(2007, 6 - 1, 4),
|
||||
nextYear = new Date(2009, 6 - 1, 4),
|
||||
minDate = new Date(2008, 2 - 1, 29),
|
||||
@ -404,6 +405,11 @@ test('minMax', function() {
|
||||
TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), new Date(2008, 6 - 1, 4), 'Min/max - setDate > min, < max');
|
||||
inp.datepicker('option', {maxDate: null}).val('01/04/2009').datepicker('option', {minDate: minDate, maxDate: maxDate});
|
||||
TestHelpers.datepicker.equalsDate(inp.datepicker('getDate'), maxDate, 'Min/max - setDate > max');
|
||||
|
||||
inp.datepicker('option', {yearRange: '-0:+1'}).val('01/01/' + new Date().getFullYear());
|
||||
ok(dp.find(".ui-datepicker-prev").hasClass("ui-state-disabled"), "Year Range Test - previous button disabled at 1/1/minYear");
|
||||
inp.datepicker("setDate", "12/30/" + new Date().getFullYear());
|
||||
ok(dp.find(".ui-datepicker-next").hasClass("ui-state-disabled"), "Year Range Test - next button disabled at 12/30/maxYear");
|
||||
});
|
||||
|
||||
test('setDate', function() {
|
||||
|
14
ui/jquery.ui.datepicker.js
vendored
14
ui/jquery.ui.datepicker.js
vendored
@ -1742,8 +1742,20 @@ $.extend(Datepicker.prototype, {
|
||||
_isInRange: function(inst, date) {
|
||||
var minDate = this._getMinMaxDate(inst, 'min');
|
||||
var maxDate = this._getMinMaxDate(inst, 'max');
|
||||
var minYear = null;
|
||||
var maxYear = null;
|
||||
var years = this._get(inst, 'yearRange');
|
||||
if (years){
|
||||
var yearSplit = years.split(':');
|
||||
var currentYear = new Date().getFullYear();
|
||||
minYear = parseInt(yearSplit[0], 10) + currentYear;
|
||||
maxYear = parseInt(yearSplit[1], 10) + currentYear;
|
||||
}
|
||||
|
||||
return ((!minDate || date.getTime() >= minDate.getTime()) &&
|
||||
(!maxDate || date.getTime() <= maxDate.getTime()));
|
||||
(!maxDate || date.getTime() <= maxDate.getTime()) &&
|
||||
(!minYear || date.getFullYear() >= minYear) &&
|
||||
(!maxYear || date.getFullYear() <= maxYear));
|
||||
},
|
||||
|
||||
/* Provide the configuration settings for formatting/parsing. */
|
||||
|
Loading…
Reference in New Issue
Block a user