Skip to content

Commit 61e15b1

Browse files
committed
Datepicker: Fixed #4647 setDate cannot be called multiple times
1 parent 269a441 commit 61e15b1

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

tests/unit/datepicker/datepicker_options.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -404,6 +404,17 @@ test('setDate', function() {
404404
equalsDate(inp.datepicker('getDate'), date1, 'Set date - two dates');
405405
inp.datepicker('setDate');
406406
ok(inp.datepicker('getDate') == null, 'Set date - null');
407+
// Relative to current date
408+
date1 = new Date();
409+
date1.setDate(date1.getDate() + 7);
410+
inp.datepicker('setDate', 'c +7');
411+
equalsDate(inp.datepicker('getDate'), date1, 'Set date - c +7');
412+
date1.setDate(date1.getDate() + 7);
413+
inp.datepicker('setDate', 'c+7');
414+
equalsDate(inp.datepicker('getDate'), date1, 'Set date - c+7');
415+
date1.setDate(date1.getDate() - 21);
416+
inp.datepicker('setDate', 'c -3 w');
417+
equalsDate(inp.datepicker('getDate'), date1, 'Set date - c -3 w');
407418
// Inline
408419
var inl = init('#inl');
409420
date1 = new Date(2008, 6 - 1, 4);

ui/ui.datepicker.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1197,7 +1197,8 @@ $.extend(Datepicker.prototype, {
11971197
catch (e) {
11981198
// Ignore
11991199
}
1200-
var date = new Date();
1200+
var date = (offset.toLowerCase().match(/^c/) ?
1201+
$.datepicker._getDate(inst) : null) || new Date();
12011202
var year = date.getFullYear();
12021203
var month = date.getMonth();
12031204
var day = date.getDate();

0 commit comments

Comments
 (0)