初始化后无法获得amsul timepicker更新禁用时间

时间:2014-07-01 14:31:48

标签: javascript jquery date jquery-mobile datepicker

我使用了美好的约会和时间来自amsul.ca/pickadate.js的时间选择器,并且无法在每次在datepicker中选择新的一天时获取时间戳来更新禁用的时间。

例如,如果我选择星期二,则时间将从12h到15h启用。 如果我回到日期选择器并选择星期三,则启用时间应更新为12h到15h以及19h到22h。

但是现在,将新的禁用时间设置为时间戳的唯一方法是重新加载页面。

非常感谢你的帮助。

干杯, 皮尔

function setTimepicker(hours) {

var $input_time = $( '.timepicker' ).pickatime({
    formatLabel: 'H:i',
    formatSubmit: 'H:i',
    format: 'H:i',
    interval: opening.max_order_days,
    min: opening.min_time,
    max: opening.max_time,
    editable: false,
    disable: [
    { from: hours.f1 , to: hours.t1 }, 
    { from: hours.f2 , to: hours.t2 },
    { from: hours.f3 , to: hours.t3 }
    ]
}); 
}

var $input = $('.datepicker').pickadate({

onSet: function() {

    picker = this;

    pick_date_obj = picker.get('select', 'ddd');

    if(pick_date_obj) { 
        $('.timepicker').textinput({ disabled: false });
        $('#timepicker').val('Please select a time');
    } else {
        $('.timepicker').textinput({ disabled: true });
        $('#timepicker').val('Please select a date');
    }

    setTimepicker(getHours(pick_date_obj));

},

format: 'yyyy-mm-dd',
formatSubmit: 'yyyy-mm-dd',
firstDay: 1,
min: true,
max: opening.max_order_days,
editable: false, 
'disable': [ opening.disabled_day ]
}); 

2 个答案:

答案 0 :(得分:0)

我发现选择器跟随其他人添加了禁用时间,所以没用。我使用picker_time.set解决问题('禁用',true);在设置新的禁用时间

之前,picker_time.set('启用',true)

答案 1 :(得分:0)

我认为这是一个开放的issue。这comment对我帮助很大。

试试这个:

schedule_time.set('disable', true);
schedule_time.set('enable', false);

var enableDates = [
  { from: hours.f1 , to: hours.t1 }, 
  { from: hours.f2 , to: hours.t2 },
  { from: hours.f3 , to: hours.t3 }
];

schedule_time.set('disable', enableDates);