gpt4 book ai didi

javascript - 如何在 onChangeMonthYear 之后禁用 jQuery UI Datepicker 中的日期

转载 作者:行者123 更新时间:2023-11-28 19:00:06 32 4
gpt4 key购买 nike

我已经看到使用 onBeforeShowDay 的解决方案,但这不是我需要的。我需要的是,当更改月份或年份时,我需要通过 AJAX 获取日期列表,然后使用该列表禁用当月的日期。

示例

$('#date_input').datepicker( "option", "onChangeMonthYear", function(year,month,inst) {
// Perform AJAX call and get the list
$.ajax({
url: ajaxUrl,
type: "post",
data: serializedData,
async: false,
success: function (data) {
// Here is where I want to update the display
// and use the returned data as the basis for the disabled list
// of the current month.
// Let's say:
// data = ['2015-10-15','2015-10-25','2015-10-13'];
}
});
});

编辑
感谢您的解决方案。具体来说,我通过动态添加回调来使用动态方法。同样重要的是,AJAX 调用需要具有 async: false 才能获取数组上的正确数据集。

$('#date_input').datepicker( "option", "onChangeMonthYear", function(year,month,inst) {
// The ajax call.
});

所以我只是按照答案添加:

$('#date_input').datepicker( "option", "beforeShowDay", function(date) {
// Update the list.
});

再次非常感谢!

最佳答案

您仍然可以使用onBeforeShowDay,因为它会在日期选择器显示之前被调用,因为更改月份将使日期选择器再次呈现。

您可以使用一个数组来存储日期列表,并根据 ajax 调用的结果更改它。例如

//at first only september dates will be disabled.
var array = ["2015-09-23","2015-09-24","2013-09-16"];

$('input').datepicker({
onChangeMonthYear: function(year, month, inst) {
// Perform AJAX call and get the list
//override the array, and now the october dates will be disabled.
$.ajax({
url: ajaxUrl,
type: "post",
data: serializedData,
async: false,
success: function (data) {
array = data; //["2015-10-23","2015-10-24","2013-10-16"];
}
});
},
beforeShowDay: function (date) {
var string = jQuery.datepicker.formatDate('yyyy-mm-dd', date);
return [array.indexOf(string) == -1 ]
}
});

这是工作fiddle

关于javascript - 如何在 onChangeMonthYear 之后禁用 jQuery UI Datepicker 中的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32746285/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com