Skip to content

Commit 40b1953

Browse files
Issue trentrichardson#453 Fixes altField when using inline mode
1 parent db02ae3 commit 40b1953

File tree

2 files changed

+49
-0
lines changed

2 files changed

+49
-0
lines changed

index.html

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -642,6 +642,22 @@ <h3 id="alt_examples">Alternate Fields</h3>
642642
</pre>
643643
</div>
644644

645+
<!-- ============= example -->
646+
<div class="example-container">
647+
<p>With inline mode:</p>
648+
<div>
649+
<input type="text" name="alt_example_4_alt" id="alt_example_4_alt" value="" />
650+
<span id="alt_example_4" ></span>
651+
</div>
652+
<pre>
653+
$('#alt_example_4').datepicker({
654+
altField: "#alt_example_4_alt",
655+
altFieldTimeOnly: false,
656+
inline: true
657+
});
658+
</pre>
659+
</div>
660+
645661
<h3 id="rest_examples">Time Restraints</h3>
646662

647663
<!-- ============= example -->

jquery-ui-timepicker-addon.js

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1264,6 +1264,39 @@
12641264
return $.datepicker._base_doKeyPress(event);
12651265
};
12661266

1267+
/*
1268+
* Fourth bad hack :/ override _updateAlternate function used in inline mode to init altField
1269+
*/
1270+
$.datepicker._base_updateAlternate = $.datepicker._updateAlternate;
1271+
/* Update any alternate field to synchronise with the main field. */
1272+
$.datepicker._updateAlternate = function(inst) {
1273+
tp_inst = this._get(inst, 'timepicker');
1274+
if(tp_inst){
1275+
var altField = tp_inst._defaults.altField;
1276+
if (altField) { // update alternate field too
1277+
var altFormat = tp_inst._defaults.altFormat || tp_inst._defaults.dateFormat;
1278+
var date = this._getDate(inst);
1279+
var formatCfg = $.datepicker._getFormatConfig(inst);
1280+
var altFormattedDateTime = '', altSeparator = tp_inst._defaults.altSeparator ? tp_inst._defaults.altSeparator : tp_inst._defaults.separator, altTimeSuffix = tp_inst._defaults.altTimeSuffix ? tp_inst._defaults.altTimeSuffix : tp_inst._defaults.timeSuffix;
1281+
if (tp_inst._defaults.altFormat)
1282+
altFormattedDateTime = $.datepicker.formatDate(tp_inst._defaults.altFormat, (date === null ? new Date() : date), formatCfg);
1283+
else
1284+
altFormattedDateTime = tp_inst.formattedDate;
1285+
if (altFormattedDateTime)
1286+
altFormattedDateTime += altSeparator;
1287+
if (tp_inst._defaults.altTimeFormat)
1288+
altFormattedDateTime += $.datepicker.formatTime(tp_inst._defaults.altTimeFormat, tp_inst, tp_inst._defaults) + altTimeSuffix;
1289+
else
1290+
altFormattedDateTime += tp_inst.formattedTime + altTimeSuffix;
1291+
1292+
$(altField).each(function() { $(this).val(altFormattedDateTime); });
1293+
}
1294+
}
1295+
else{
1296+
$.datepicker._base_updateAlternate(inst);
1297+
}
1298+
};
1299+
12671300
/*
12681301
* Override key up event to sync manual input changes.
12691302
*/

0 commit comments

Comments
 (0)