trentrichardson / jQuery-Timepicker-Addon

Adds a timepicker to jQueryUI Datepicker
http://trentrichardson.com/examples/timepicker/
MIT License
2.66k stars 1.05k forks source link

Cannot set 'hourMax' option when using onSelect #651

Open onshop opened 10 years ago

onshop commented 10 years ago

Version: 1.4

I have found that dynamically setting 'hourMax' is not working using 'option':

startDateTextBox.datetimepicker( 'option', 'hourMax', EndHours );

When I use 'hourMin' it works fine.

var startDateTextBox = $('#start_time');
var endDateTextBox   = $('#end_time');

$('#start_time').timepicker({
    controlType: 'select',
    stepMinute: 30,
   onClose: function(dateText, inst) {

      if (endDateTextBox.val() != '') {
          var StartDate = startDateTextBox.datetimepicker('getDate');
          var EndDate = endDateTextBox.datetimepicker('getDate');
          if (StartDate > EndDate){
              endDateTextBox.datetimepicker('setDate', StartDate);
         }
      }
      else {
          endDateTextBox.val(dateText);
      }
  },
  onSelect: function (selectedDateTime){
      var StartDate = startDateTextBox.datetimepicker('getDate');
      var StartHours = StartDate.getHours();
      endDateTextBox.datetimepicker( 'option', 'hourMin', StartHours );
  }
});

$('#end_time').timepicker({
  controlType: 'select',
  stepMinute: 30,
  onClose: function(dateText, inst) {

      if (startDateTextBox.val() != '') {
          var StartDate = startDateTextBox.datetimepicker('getDate');
          var EndDate = endDateTextBox.datetimepicker('getDate');

          if (StartDate > EndDate){
              startDateTextBox.datetimepicker( 'setDate', EndDate);
          }
      } else {
          startDateTextBox.val(dateText);
       }
  },
  onSelect: function (selectedDateTime){

      var EndDate  = endDateTextBox.datetimepicker('getDate');
      var EndHours = EndDate.getHours();
      startDateTextBox.datetimepicker( 'option', 'hourMax', EndHours );
  }

});

onshop commented 10 years ago

I used the following as a workaround:

  $('#start_time').removeClass("hasDatepicker");
  $('#start_time').timepicker({ 
                              controlType: 'select', 
                              stepMinute: 30,
                              hourMax: EndHours
                             });