【问题标题】:Javascript timepicker range updateJavascript 时间选择器范围更新
【发布时间】:2019-02-06 06:44:20
【问题描述】:

我正在使用这个时间选择器http://jonthornton.github.io/jquery-timepicker/

当用户第一次从 datepicker 中选择日期时,我会从服务器获取数据并将它们以正确的格式放入数组中。这个数组用于 disableTimeRanges 中的 timepicker。这在用户第一次单击时有效,但当用户第二次更改日期时 disableTimeRanges 不会更新,因此它与第一次保持相同。

当用户点击日期选择器时,有没有办法“重置”时间选择器?

这是一个代码:

$("#datefrom").datepicker({
    dateFormat: 'dd-mm-yy',
    onSelect: function (date) {
       $.post("ajax-date-check.php", {'date': date}, function(result){

            var ret = result.replace(/"/g,'');
            var length = ret.length; 
            var string = ret.slice(1, length-1);
            var array = JSON
            .parse('[' + string.replace(/'/g, '"') + ']')
       .reduce((r, s, i) => r.concat([i % 2 ? r.pop().concat(s) : [s]]), 
        []);

        $('.timepicker1').timepicker({
            'timeFormat': 'H:i',
            'minTime': '8:00am',
            'maxTime': '8:00pm',
            'disableTimeRanges': array,
            'show2400': true
        });
  });

  }
});

【问题讨论】:

    标签: javascript datepicker timepicker


    【解决方案1】:

    为什么你的数组在 $.post() 中声明?

    试试这个

    $("#datefrom").datepicker({
        dateFormat: 'dd-mm-yy',
        onSelect: async function (date) {
           var array;
           await $.post("ajax-date-check.php", {'date': date}, function(result){
    
                var ret = result.replace(/"/g,'');
                var length = ret.length; 
                var string = ret.slice(1, length-1);
                array = JSON
                .parse('[' + string.replace(/'/g, '"') + ']')
           .reduce((r, s, i) => r.concat([i % 2 ? r.pop().concat(s) : [s]]), 
            []);
    
            $('.timepicker1').timepicker({
                'timeFormat': 'H:i',
                'minTime': '8:00am',
                'maxTime': '8:00pm',
                'disableTimeRanges': array,
                'show2400': true
            });
      });
    
      }
    });
    

    【讨论】:

    • 是一回事。
    • @user3590094 尝试使用异步和等待。我更新了答案。
    猜你喜欢
    • 1970-01-01
    • 2015-12-30
    • 2018-03-08
    • 2014-06-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-05
    • 1970-01-01
    相关资源
    最近更新 更多