diff options
author | marcneuwirth <marc.neuwirth@gmail.com> | 2011-06-28 10:59:08 -0500 |
---|---|---|
committer | Corey Frang <gnarf@gnarf.net> | 2011-06-28 11:00:06 -0500 |
commit | b8e14e79e5bc630bf459137896c08fc37936f52f (patch) | |
tree | d39e2bc9c195a0fe627ddbdca967e80857f69545 | |
parent | bb9f9fac816dd379e810e8b70823bb7980250ffb (diff) | |
download | jquery-ui-b8e14e79e5bc630bf459137896c08fc37936f52f.tar.gz jquery-ui-b8e14e79e5bc630bf459137896c08fc37936f52f.zip |
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 effdd5d19c534f8445ebafe4212278c4366b0041)
-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 b14c87b8b..a6d4b8fbc 100644 --- a/tests/unit/datepicker/datepicker_options.js +++ b/tests/unit/datepicker/datepicker_options.js @@ -474,6 +474,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 458ad01ec..3f3e73a70 100644 --- a/ui/jquery.ui.datepicker.js +++ b/ui/jquery.ui.datepicker.js @@ -1386,6 +1386,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. */ |