aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormarcneuwirth <marc.neuwirth@gmail.com>2011-06-28 10:59:08 -0500
committerCorey Frang <gnarf@gnarf.net>2011-06-28 11:00:06 -0500
commitb8e14e79e5bc630bf459137896c08fc37936f52f (patch)
treed39e2bc9c195a0fe627ddbdca967e80857f69545
parentbb9f9fac816dd379e810e8b70823bb7980250ffb (diff)
downloadjquery-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.js10
-rw-r--r--ui/jquery.ui.datepicker.js8
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. */