Skip to content

Commit a06a031

Browse files
Fixed issues to falling back to plain datepicker
1 parent f499927 commit a06a031

File tree

1 file changed

+29
-15
lines changed

1 file changed

+29
-15
lines changed

jquery-ui-timepicker-addon.js

Lines changed: 29 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -413,13 +413,20 @@
413413
$.datepicker._selectDate = function (id, dateStr) {
414414
var target = $(id);
415415
var inst = this._getInst(target[0]);
416-
inst.inline = true;
417-
inst.stay_open = true;
418-
$.datepicker._base_selectDate(id, dateStr);
419-
inst.stay_open = false;
420-
inst.inline = false;
421-
this._notifyChange(inst);
422-
this._updateDatepicker(inst);
416+
var tp_inst = $.datepicker._get(inst, 'timepicker');
417+
418+
if(tp_inst){
419+
inst.inline = true;
420+
inst.stay_open = true;
421+
$.datepicker._base_selectDate(id, dateStr);
422+
inst.stay_open = false;
423+
inst.inline = false;
424+
this._notifyChange(inst);
425+
this._updateDatepicker(inst);
426+
}
427+
else{
428+
$.datepicker._base_selectDate(id, dateStr);
429+
}
423430
};
424431

425432
//#############################################################################################
@@ -438,7 +445,7 @@
438445
$.datepicker._beforeShow = function(input, inst) {
439446
var beforeShow = this._get(inst, 'beforeShow');
440447
if (beforeShow) {
441-
inst.stay_open = true;
448+
inst.stay_open = true;
442449
beforeShow.apply((inst.input ? inst.input[0] : null), [inst.input, inst]);
443450
inst.stay_open = false;
444451
}
@@ -450,13 +457,20 @@
450457
$.datepicker._base_doKeyPress = $.datepicker._doKeyPress;
451458
$.datepicker._doKeyPress = function(event) {
452459
var inst = $.datepicker._getInst(event.target);
453-
454-
if ($.datepicker._get(inst, 'constrainInput')) {
455-
var dateChars = $.datepicker._possibleChars($.datepicker._get(inst, 'dateFormat'));
456-
var chr = String.fromCharCode(event.charCode === undefined ? event.keyCode : event.charCode);
457-
// keyCode == 58 => ":"
458-
// keyCode == 32 => " "
459-
return event.ctrlKey || (chr < ' ' || !dateChars || dateChars.indexOf(chr) > -1 || event.keyCode == 58 || event.keyCode == 32);
460+
var tp_inst = $.datepicker._get(inst, 'timepicker');
461+
462+
if(tp_inst){
463+
if ($.datepicker._get(inst, 'constrainInput')) {
464+
var dateChars = $.datepicker._possibleChars($.datepicker._get(inst, 'dateFormat'));
465+
var chr = String.fromCharCode(event.charCode === undefined ? event.keyCode : event.charCode);
466+
var chrl = chr.toLowerCase();
467+
// keyCode == 58 => ":"
468+
// keyCode == 32 => " "
469+
return event.ctrlKey || (chr < ' ' || !dateChars || dateChars.indexOf(chr) > -1 || event.keyCode == 58 || event.keyCode == 32 || chr == ':' || chr == ' ' || chrl == 'a' || chrl == 'p' || charl == 'm');
470+
}
471+
}
472+
else{
473+
return $.datepicker._base_doKeyPress(event);
460474
}
461475

462476
};

0 commit comments

Comments
 (0)