Skip to content

Commit b8e14e7

Browse files
marcneuwirthgnarf
authored andcommitted
Datepicker: Added onSelect.apply() call to _setDate method if onSelect is defined. Fixed #6264 - Datepicker: onSelect does not fire when setDate is called
(cherry picked from commit effdd5d)
1 parent bb9f9fa commit b8e14e7

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

tests/unit/datepicker/datepicker_options.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -474,6 +474,16 @@ test('setDate', function() {
474474
var dateAndTimeClone = new Date(2008, 3 - 1, 28, 1, 11, 0);
475475
inp.datepicker('setDate', dateAndTimeToSet);
476476
equals(dateAndTimeToSet.getTime(), dateAndTimeClone.getTime(), 'Date object passed should not be changed by setDate');
477+
// Test onSelect callback is executed when using setDate
478+
inp.datepicker('destroy');
479+
var testDate = null;
480+
inp.datepicker({
481+
onSelect: function(dateText, inst) {
482+
testDate = new Date(dateText);
483+
}
484+
});
485+
inp.datepicker('setDate', date2);
486+
equals(date2.getTime(), testDate.getTime(), 'onSelect is called after setDate');
477487
});
478488

479489
test('altField', function() {

ui/jquery.ui.datepicker.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1386,6 +1386,14 @@ $.extend(Datepicker.prototype, {
13861386
if (inst.input) {
13871387
inst.input.val(clear ? '' : this._formatDate(inst));
13881388
}
1389+
1390+
var onSelect = this._get(inst, 'onSelect');
1391+
if (onSelect) {
1392+
var dateStr = this._formatDate(inst);
1393+
1394+
// trigger custom callback
1395+
onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]);
1396+
}
13891397
},
13901398

13911399
/* Retrieve the date(s) directly. */

0 commit comments

Comments
 (0)