diff options
author | Trent Richardson <trentdrichardson@gmail.com> | 2015-11-14 10:36:07 -0500 |
---|---|---|
committer | Trent Richardson <trentdrichardson@gmail.com> | 2015-11-14 10:36:07 -0500 |
commit | 95d3ec39ce5bfab43a068ae6e7e36cfb4b35ecc1 (patch) | |
tree | 2f896c707f52ed5ae621caa12971f194711e6b25 /src/jquery-ui-timepicker-addon.js | |
parent | ecc41f97c1f5ca041dec842d941cc25ceac154fa (diff) | |
parent | f2b80bee999910fc1f8f7dded808d5bf703acd05 (diff) | |
download | jQuery-Timepicker-Addon-95d3ec39ce5bfab43a068ae6e7e36cfb4b35ecc1.zip jQuery-Timepicker-Addon-95d3ec39ce5bfab43a068ae6e7e36cfb4b35ecc1.tar.gz jQuery-Timepicker-Addon-95d3ec39ce5bfab43a068ae6e7e36cfb4b35ecc1.tar.bz2 |
Merge branch 'dev'
Diffstat (limited to 'src/jquery-ui-timepicker-addon.js')
-rw-r--r-- | src/jquery-ui-timepicker-addon.js | 38 |
1 files changed, 28 insertions, 10 deletions
diff --git a/src/jquery-ui-timepicker-addon.js b/src/jquery-ui-timepicker-addon.js index a9bc63e..79de1e3 100644 --- a/src/jquery-ui-timepicker-addon.js +++ b/src/jquery-ui-timepicker-addon.js @@ -9,7 +9,7 @@ (function (factory) { if (typeof define === 'function' && define.amd) { - define(['jquery', 'jquery.ui'], factory); + define(['jquery', 'jquery-ui'], factory); } else { factory(jQuery); } @@ -393,7 +393,7 @@ if ($dp.find("div.ui-timepicker-div").length === 0 && o.showTimepicker) { var noDisplay = ' ui_tpicker_unit_hide', html = '<div class="ui-timepicker-div' + (o.isRTL ? ' ui-timepicker-rtl' : '') + (o.oneLine && o.controlType === 'select' ? ' ui-timepicker-oneLine' : '') + '"><dl>' + '<dt class="ui_tpicker_time_label' + ((o.showTime) ? '' : noDisplay) + '">' + o.timeText + '</dt>' + - '<dd class="ui_tpicker_time '+ ((o.showTime) ? '' : noDisplay) + '"></dd>'; + '<dd class="ui_tpicker_time '+ ((o.showTime) ? '' : noDisplay) + '"><input class="ui_tpicker_time_input" ' + (o.timeInput ? '' : 'disabled') + '/></dd>'; // Create the markup for (i = 0, l = this.units.length; i < l; i++) { @@ -530,7 +530,21 @@ $dp.append($tp); } - this.$timeObj = $tp.find('.ui_tpicker_time'); + this.$timeObj = $tp.find('.ui_tpicker_time_input'); + this.$timeObj.change(function () { + var timeFormat = tp_inst.inst.settings.timeFormat; + var parsedTime = $.datepicker.parseTime(timeFormat, this.value); + var update = new Date(); + if (parsedTime) { + update.setHours(parsedTime.hour); + update.setMinutes(parsedTime.minute); + update.setSeconds(parsedTime.second); + $.datepicker._setTime(tp_inst.inst, update); + } else { + this.value = tp_inst.formattedTime; + this.blur(); + } + }); if (this.inst !== null) { var timeDefined = this.timeDefined; @@ -868,12 +882,15 @@ // Updates the time within the timepicker this.formattedTime = $.datepicker.formatTime(o.timeFormat, this, o); if (this.$timeObj) { + var sPos = this.$timeObj[0].selectionStart; + var ePos = this.$timeObj[0].selectionEnd; if (pickerTimeFormat === o.timeFormat) { - this.$timeObj.text(this.formattedTime + pickerTimeSuffix); + this.$timeObj.val(this.formattedTime + pickerTimeSuffix); } else { - this.$timeObj.text($.datepicker.formatTime(pickerTimeFormat, this, o) + pickerTimeSuffix); + this.$timeObj.val($.datepicker.formatTime(pickerTimeFormat, this, o) + pickerTimeSuffix); } + this.$timeObj[0].setSelectionRange(sPos, ePos); } this.timeDefined = true; @@ -1548,18 +1565,19 @@ }; /* - * override "Today" button to also grab the time. + * override "Today" button to also grab the time and set it to input field. */ $.datepicker._base_gotoToday = $.datepicker._gotoToday; $.datepicker._gotoToday = function (id) { - var inst = this._getInst($(id)[0]), - $dp = inst.dpDiv; + var inst = this._getInst($(id)[0]); + this._base_gotoToday(id); var tp_inst = this._get(inst, 'timepicker'); - selectLocalTimezone(tp_inst); + var tzoffset = $.timepicker.timezoneOffsetNumber(tp_inst.timezone); var now = new Date(); + now.setMinutes(now.getMinutes() + now.getTimezoneOffset() + tzoffset); this._setTime(inst, now); this._setDate(inst, now); - this._base_gotoToday(id); + tp_inst._onSelectHandler(); }; /* |