0
我想使2個輸入 - 一個用pickadate,其他用pickatime。當用戶選擇一個日期時,禁用時間數組被傳遞給pickatime函數。我有兩個數組從後端與PHP傳遞。我正在採取這些和使用哪些時間/日期需要被禁用。我的代碼:Pickadate發生呈現新的禁用時間
$('#myfield1').pickadate({
format: 'yyyy-mm-dd',
//array with dates
disable: exclude_days_real,
//I want to render new pickatime every time I choose a new date
onSet: function() {
//check if there are disabled hours in a date user have chosen
var chosen_date = $('#myfield1').val();
var disabled_time_real = [];
//if there are disabled hours, make them correct array from js object
if (time_array[chosen_date]) {
var disabled_time = time_array[chosen_date];
for (i = 0; i < disabled_time.length; i++) {
var time = disabled_time[i];
var time_synt = time.split(':');
disabled_time_real.push(time_synt);
}
}
//make time input field blank
$('#myfield2').val('');
//and here I think it should render time select every time date is set, but it works only one time
$('#myfield2').pickatime({
format: 'H:i',
interval: 60,
min: [10, 00],
max: [16, 00],
disable: disabled_time_real
});
}
});
我怎樣才能讓它在每次用戶選擇一個新的日期時渲染?我想過除去輸入和插入新的輸入,但我認爲它應該有更好的解決方案。
這是一大進步,謝謝!只有當我選擇殘疾人時間和其他時間,那些時間不會「不可禁止」。當我第一次選擇沒有禁用時間的日期,然後選擇禁用時間時,我可以看到它呈現良好,因爲列表中有禁用時間 –
@PaulMark,我建議閱讀文檔。 http://amsul.ca/pickadate.js/api/#method-set-disable-enable。它解釋說,禁用日期會添加到項目集合中;它不會取代它們。您需要在重置禁用日期之前重新啓用所有日期。 'time_picker.set('enable',true)'。答案已更新(尚未經過測試)。我希望它能起作用,並且你接受它,但我強烈鼓勵閱讀文檔,以瞭解你的所有選擇。 Amsul在記錄Pickadate方面做了一項非常出色的工作,你可以利用它。乾杯。 –
是的,現在它完美地工作。我查看了文檔,但沒有注意到這一點。現在它是有道理的。謝謝有一個偉大的生活:) –