这样做的想法是,一旦从选择器中选择了一个特定的省,日历随后只会显示平面选择器日历中可用的日期。这是可行的。
但是,当用户改变主意并选择另一个省时,该省份的可用日期不会被更新。Console.log (数据)显示正在更新的日期,只是没有反映在日历中。
因此,我想具体的问题是:如何重置enable属性。
源
$(document).ready(function(){
$('select[name="provincie"]').on('change',function(){
var provincie_id = $(this).val();
if (provincie_id){
$.ajax({
url: 'provincie/datum/'+provincie_id,
type: 'GET',
dataType: 'json',
success: function (data){
var config = {
inline: false,
altInput: true,
dateFormat: "Y-m-d",
enable: data,
}
console.log(data); //shows dates are being updated
$("input[type=datepick]").flatpickr(config);
}
});
} else {
$('select[name="times"]').empty();
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>这是第一省的数据:
["2021-09-27","2021-09-28","2021-09-29","2021-09-30"]第二省:
["2021-10-06","2021-10-08","2021-10-15","2021-10-28"]发布于 2021-09-27 22:56:08
.flatpickr(config)仅用于数据报警器的初始配置。如果要更改现有的数据报警器,则需要使用"set"方法:
$("input[type=datepick]").flatpickr("set", "enable", data);发布于 2021-09-28 09:16:56
感谢巴玛尔的帮助。下面是修改后的代码。我还添加了一个clear()来重置这些值。
$(document).ready(function(){
let calendar = flatpickr("input[type=datepick]",{altInput:true, dateFormat:"Y-m-d", enable:["2021-09-30"]});
$('select[name="provincie"]').on('change',function(){
calendar.clear();
var provincie_id = $(this).val();
if (provincie_id){
$.ajax({
url: 'thuisprik-afspraak/datum/'+provincie_id,
type: 'GET',
dataType: 'json',
success: function (data){
calendar.set("enable", data);
}
});
} else {
$('select[name="stad"]').empty();
}
});https://stackoverflow.com/questions/69353952
复制相似问题