jQuery .each()配置flatpickr仅显示首尾可用日期问题求解
错误原因
- 配置对象
config被放在$.each遍历逻辑内部,每轮遍历都会覆盖上一轮生成的config值,循环结束后仅保留最后一次遍历的配置,因此只能读取到最后一个日期。 - flatpickr要求
enable参数传入日期字符串数组,但你使用html += [value]的写法实际是执行字符串拼接,最终得到的是拼接后的长字符串,完全不符合参数格式要求。
修正后代码
$(document).ready(function() { $('select[name="provincie"]').on('change', function() { var provincie_id = $(this).val(); if (provincie_id) { $.ajax({ url: 'link/' + provincie_id, type: 'GET', dataType: 'json', success: function(data) { // 初始化空数组存储所有可用日期 var enableDates = []; // 遍历返回的JSON数据,把所有日期推入数组 $.each(data, function(key, value) { enableDates.push(value); }); // 遍历完成后再生成配置对象,传入完整的日期数组 var config = { inline: true, altInput: true, dateFormat: "Y-m-d", enable: enableDates } flatpickr("input[type=datepick]", config); } }); } else { $('select[name="datum"]').empty(); } }); });
内容的提问来源于stack exchange,提问作者Adam D.
相关产品推荐
相关产品推荐

