gpt4 book ai didi

jquery - 如何从另一个函数启动 DatePicker 的 beforeShowDay

转载 作者:行者123 更新时间:2023-12-03 21:58:48 25 4
gpt4 key购买 nike

我有一个带有以下代码的日期选择器。我有一个下拉框,在下拉框中发生更改时,我想启动 datePicker beforeShowDay 函数。我怎样才能做到这一点?

var freeDate;

我的部分代码如下:

$("#myDiv").datepicker({
showOtherMonths: true,
selectOtherMonths: true,
dateFormat: "yy/mm/dd",
onSelect: function(dateText, inst) {},
onChangeMonthYear: function(year, month, inst) {
$.ajax({
contentType: "application/json; charset=utf-8",
dataType: "json",
url: '@Url.Action("ListDates", "Party")',
data: {
date: new Date(year, month - 1, 1).toString("yyyy/MM/dd"),
userID: userID
},
success: function(data) {
freeDate = eval(data);
},
error: function(request, status, error) {}
});
},
beforeShowDay: function(dateToShow) {
var returnResult = new Array();
returnResult.push(true);
var itemMatched = false;
$.each(freeDate, function(key, value) {
if (new Date(parseInt(value.substr(6))).compareTo(dateToShow) == 0) {
itemMatched = true;
returnResult.push('timeNotFree');
return;
}
});
if (!itemMatched) returnResult.push('');
returnResult.push('');
return returnResult;
}
});​
<小时/>
$('#myList').change(function() {
userID = $("#userList > option:selected").attr("value");
// myList is used to have freeDate and the DatePicker must be shown accordingly.
$.ajax({
contentType: "application/json; charset=utf-8",
dataType: "json",
url: '@Url.Action("ListDates", "Party")',
data: {
date: new Date($("#myDiv").datepicker("getDate").toString("yyyy/MM/dd")),
userID: userID
},
success: function(data) {
freeDate = eval(data);
},
error: function(request, status, error) {}
});
$("#myDiv").datepicker("setDate", $("#myDiv").datepicker("getDate").toString("yyyy/MM/dd"));
});​

最佳答案

beforeShowDay 是在渲染之前由日期选择器触发的事件。您可以使用它来自定义包含日期的单元格的显示方式,例如您可以将其变成红色以指示被阻止的日期。

据我从你的问题中了解到,你可以调用 datapicker.refresh()方法来指示 freeDate 变量已更改(例如通过 AJAX 响应)并且需要再次呈现日历。

编辑

我相信这是您的下拉列表的代码,看起来它使用了ajax:

$('#myList').change(
...

在成功回调中,您有:

freeDate = eval(data);

这是 freeDate 发生变化的地方,这可能是您应该调用 .refresh() 方法的地方。请注意,AJAX 默认情况下是异步的,因此选择值和成功事件回调之间存在一些延迟。

以下是如何在现有日期选择器上调用方法:

.
.
.
freeDate = eval(data);
$("#myDiv").datepicker("refresh");
.
.
.

关于jquery - 如何从另一个函数启动 DatePicker 的 beforeShowDay,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5831230/

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