在其他选择选项更改的当天时间更改disabledHours

问题描述 投票:0回答:2

任务是餐馆的预订表格。每个餐厅的残疾人时间都是相同的,除了其中一个。所有餐厅均可通过选择选项进行选择。 select字段已经有一个名为show的js函数用于不同的函数。

我创建了js来设置17和23之间的时间,以便在事先挑选餐厅时禁用。

但是我不能让选择器重新加载更改。我已经尝试过功能show()和$('#Restaurant')。change(function()。我意识到我并没有告诉选择器改变值,但我不确定如何。

<select name="Restaurant" id="Restaurant" onchange="show()" required data-msg-required="Please choose the restaurant"> 
        <?php  if (empty($_GET['Restaurant'])){echo '<option disabled selected 
    value="">Choose restaurant</option>';}?>
        <?php booking(); ?>
</select>


<script>
$(function () {
  $('#DatumZeit').datetimepicker({
    locale: 'en',
    minDate: moment().add(2, 'hours'),
    disabledHours: disabledtime,
    format: 'DD.MM.YYYY HH:mm',
    showClose: true,
    icons: {
        close: 'OK'
    },
    widgetPositioning: {
        horizontal: 'auto',
        vertical: 'bottom'
     },
   });
});


 function show(){
    if(document.getElementById('Restaurant').value == "Düsseldorf") {
       var currenttime  = moment();
       var timestart = moment().startOf('day').hour(10).add(7, 'hours');
       var timeend = moment().startOf('day').hour(10).add(13, 'hours');
                        console.log(timestart);
                        console.log(timeend);

        if (currenttime.isBetween(timestart, timeend)) {
          console.log('is between');
          var disabledtime= [10,9,8,7,6,5,4,3,2,1,00,24,23,17,18,19,20,21,22];

       } else {
          console.log('is not between');
          var disabledtime= [10,9,8,7,6,5,4,3,2,1,00,24,23];
      }                                       
    };
 }
</script>
eonasdan-datetimepicker
2个回答
0
投票

也许它可以帮助其他人:基本上我使用$('#DatumZeit')。data(“DateTimePicker”)。disabledHours。

  function show(){
      if(document.getElementById('Restaurant').value == "Düsseldorf") {
        var currenttime  = moment();
        var timestart = moment().startOf('day').hour(10).add(7, 'hours');
        var timeend = moment().startOf('day').hour(10).add(13, 'hours');

        if (currenttime.isBetween(timestart, timeend)) {
          $('#DatumZeit').data("DateTimePicker").disabledHours([
            10,9,8,7,6,5,4,3,2,1,00,24,23,17,18,19,20,21,22
          ]);
            console.log('is between');
          } else {
          $('#DatumZeit').data("DateTimePicker").disabledHours([
            10,9,8,7,6,5,4,3,2,1,00,24,23
          ]);
            console.log('is not between');
        }
      };

       if(document.getElementById('Restaurant').value != "Düsseldorf") {
          $('#DatumZeit').data("DateTimePicker").disabledHours([
            10,9,8,7,6,5,4,3,2,1,00,24,23
          ]);
       }
    }

0
投票

实际上,我有一个更好的版本可以满足我自己的需求,也可能适用于其他人。

function show(){
      if(document.getElementById('Restaurant').value == "Düsseldorf") {
        var myDate = new Date();
        var currenttime = moment(myDate); 
      var timestart = moment().startOf('day').hour(17);
        var timeend = moment().startOf('day').hour(23);

        if (currenttime.isBetween(timestart, timeend)) {
            $('#DatumZeit').data("DateTimePicker").date(moment().add(1, 'days')).disabledHours(
               [0,1,2,3,4,5,6,7,8,9,10,23,24]
            ) 
        } 
        else {
            $('#DatumZeit').data("DateTimePicker").date(moment(myDate)).disabledHours(
                [0,1,2,3,4,5,6,7,8,9,10,23,24]
            )
        }
      }   else {
      $('#DatumZeit').data("DateTimePicker").date(moment().add(2, 'hours')).enabledHours(
              [11, 12 ,13 ,14 ,15, 17,16, 18, 19, 20, 21, 22]
        )
      }
    }
© www.soinside.com 2019 - 2024. All rights reserved.