aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormarcneuwirth <marc.neuwirth@gmail.com>2011-06-28 10:49:47 -0500
committerCorey Frang <gnarf@gnarf.net>2011-06-28 10:50:58 -0500
commitbb9f9fac816dd379e810e8b70823bb7980250ffb (patch)
tree4c777c3733329096a01ef3c34a863427ddf64715
parent86a09aeb332851971bc2b2ce6bbf4d4292b12020 (diff)
downloadjquery-ui-bb9f9fac816dd379e810e8b70823bb7980250ffb.tar.gz
jquery-ui-bb9f9fac816dd379e810e8b70823bb7980250ffb.zip
Datepicker: Added onSelect.apply() call to _doKeyDown method when enter button pushed if onSelect is defined. Fixed #7124 - Datepicker: onSelect does not fire when enter button is pushed
(cherry picked from commit a56aa861b1deb6d71ec74a77647d12d50570ea57)
-rw-r--r--tests/unit/datepicker/datepicker_events.js5
-rw-r--r--ui/jquery.ui.datepicker.js7
2 files changed, 12 insertions, 0 deletions
diff --git a/tests/unit/datepicker/datepicker_events.js b/tests/unit/datepicker/datepicker_events.js
index 858cf682a..bcd990889 100644
--- a/tests/unit/datepicker/datepicker_events.js
+++ b/tests/unit/datepicker/datepicker_events.js
@@ -46,6 +46,11 @@ test('events', function() {
simulate('keydown', {keyCode: $.simulate.VK_ESC});
equals(selectedDate, $.datepicker.formatDate('mm/dd/yy', date),
'Callback selected date - esc');
+ var dateStr = '02/04/2008';
+ inp.val(dateStr).datepicker('show').
+ simulate('keydown', {keyCode: $.simulate.VK_ENTER});
+ equals(dateStr, selectedDate,
+ 'onSelect is called after enter keydown');
// onChangeMonthYear
inp.datepicker('option', {onChangeMonthYear: callback2, onSelect: null}).
val('').datepicker('show');
diff --git a/ui/jquery.ui.datepicker.js b/ui/jquery.ui.datepicker.js
index acb296fc8..458ad01ec 100644
--- a/ui/jquery.ui.datepicker.js
+++ b/ui/jquery.ui.datepicker.js
@@ -520,6 +520,13 @@ $.extend(Datepicker.prototype, {
$.datepicker._currentClass + ')', inst.dpDiv);
if (sel[0])
$.datepicker._selectDay(event.target, inst.selectedMonth, inst.selectedYear, sel[0]);
+ var onSelect = $.datepicker._get(inst, 'onSelect');
+ if (onSelect) {
+ var dateStr = $.datepicker._formatDate(inst);
+
+ // trigger custom callback
+ onSelect.apply((inst.input ? inst.input[0] : null), [dateStr, inst]);
+ }
else
$.datepicker._hideDatepicker();
return false; // don't submit the form