diff options
author | marcneuwirth <marc.neuwirth@gmail.com> | 2011-06-28 10:59:08 -0500 |
---|---|---|
committer | Corey Frang <gnarf@gnarf.net> | 2011-06-28 10:59:08 -0500 |
commit | effdd5d19c534f8445ebafe4212278c4366b0041 (patch) | |
tree | 195ebacb5b097c1077b972617ad09977df3d062e | |
parent | a56aa861b1deb6d71ec74a77647d12d50570ea57 (diff) | |
download | jquery-ui-effdd5d19c534f8445ebafe4212278c4366b0041.tar.gz jquery-ui-effdd5d19c534f8445ebafe4212278c4366b0041.zip |
Datepicker: Added onSelect.apply() call to _setDate method if onSelect is defined. Fixed #6264 - Datepicker: onSelect does not fire when setDate is called
-rw-r--r-- | tests/unit/datepicker/datepicker_options.js | 10 | ||||
-rw-r--r-- | ui/jquery.ui.datepicker.js | 8 |
2 files changed, 18 insertions, 0 deletions
diff --git a/tests/unit/datepicker/datepicker_options.js b/tests/unit/datepicker/datepicker_options.js index a10d1ea45..107609174 100644 --- a/tests/unit/datepicker/datepicker_options.js +++ b/tests/unit/datepicker/datepicker_options.js @@ -469,6 +469,16 @@ test('setDate', function() { var dateAndTimeClone = new Date(2008, 3 - 1, 28, 1, 11, 0); inp.datepicker('setDate', dateAndTimeToSet); equals(dateAndTimeToSet.getTime(), dateAndTimeClone.getTime(), 'Date object passed should not be changed by setDate'); + // Test onSelect callback is executed when using setDate + inp.datepicker('destroy'); + var testDate = null; + inp.datepicker({ + onSelect: function(dateText, inst) { + testDate = new Date(dateText); + } + }); + inp.datepicker('setDate', date2); + equals(date2.getTime(), testDate.getTime(), 'onSelect is called after setDate'); }); test('altField', function() { diff --git a/ui/jquery.ui.datepicker.js b/ui/jquery.ui.datepicker.js index 442621e0d..dda8585fd 100644 --- a/ui/jquery.ui.datepicker.js +++ b/ui/jquery.ui.datepicker.js @@ -1399,6 +1399,14 @@ $.extend(Datepicker.prototype, { if (inst.input) { inst.input.val(clear ? '' : this._formatDate(inst)); } + + var onSelect = this._get(inst, 'onSelect'); + if (onSelect) { + var dateStr = this._formatDate(inst); + + // trigger custom callback + onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]); + } }, /* Retrieve the date(s) directly. */ |