Pickadate/Pickatime datetimepicker -所选值不断更改回默认值

Pickadate/Pickatime datetimepicker - selected value keeps changing back to default

本文关键字:默认值 Pickatime datetimepicker -所 Pickadate      更新时间:2023-09-26

我有两个时间选择器,第一个是'from'时间,第二个是'to'时间。
我想要实现的是,当'from'时间被选中时,'to'时间将在'from'时间之前禁用所有时间,如果'to'时间在新选择的'from'时间之前,它将在'from'时间后15分钟更新'to'时间。

改变选择的值并禁用时间在彼此独立时工作完美,但是当它们一起使用时,时间总是恢复到1:30PM,看起来像选择中的中值。

我最终想出了这个问题,并把答案贴在下面,供其他遇到这个问题的人使用。

所以我最终发现是disable函数导致了这个问题,在检查to时间的当前值是否小于from时间之前,我最初设置了disable时间。

当禁用时间时,pickatime将当前设置的时间重置为中位数,对我来说是1:30PM。

我所需要做的就是在禁用任何时间之前,将to时间相对于新的from时间增加15分钟。

解决问题的代码

jQuery('#datetimepicker' + COUNT + '1' + ' input').on('change', function()
        {
            var time = jQuery(this).pickatime('picker').get('select'),
                hour = time.hour,
                minute = time.mins,
                count = jQuery(this).data('count'),
            picker = jQuery('#datetimepicker' + count + '2' + ' input').pickatime('picker');
            picker.set('enable', true);
            if (picker.get('value') != '')
            {
                if (picker.get('select').time <= time.time)
                {
                    picker.set('select', time.time + 15);
                }
            }
            else
            {
                picker.set('select', time.time + 15);
            }
            picker.set('disable',[{from: [7, 0], to: [hour, minute]}]);
            picker.render;
        });

希望这可以节省其他人处理这个问题的时间。:)