【发布时间】:2021-11-19 22:45:28
【问题描述】:
Stack 上有很多类似我的问题,但我无法让它与这些答案一起工作。
用户选择一个省份,然后从 flatpickr 日历中选择一个可用的日期。可用日期来自 JSON 数组,需要以 enable: ["2021-08-05","2021-05-03", etc.]. 的形式插入到配置中。但是,我只从 JSON 数组中获得第一个或经过一些调整的最后一个可用日期。我在做什么错以及如何在文档要求之间用逗号解决它。
$(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) { //see data below
var html = [""]
$.each(data, function(key, value) {
config = {
inline: true,
altInput: true,
dateFormat: "Y-m-d",
enable: [
html += [value]
],
}
});
flatpickr("input[type=datepick]", config);
}
});
} else {
$('select[name="datum"]').empty();
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
{"1":"2021-09-27","2":"2021-09-28","3":"2021-09-29","4":"2021-09-30"} //This is the data from JSON for a particular province
尝试使用 .append() 无济于事
【问题讨论】:
-
请寻求How to Ask。我会从这个演示中删除 ajax 调用,模拟一个数组,然后向我们展示它在正常运行的 sn-p 中是如何工作的。
-
var html = [""]和html += [value]没有意义。你认为那到底是在做什么?如果你正在尝试构建一个数组,你应该使用 map() -
你从不使用
html变量。 -
每次循环你都会重新分配
config。循环完成后,它包含最后一个值。 -
尤其是
[ html += [ value ] ]...你觉得这是在做什么?
标签: javascript jquery arrays