jQuery   发布时间:2022-04-19  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jquery – 如何从另一个功能启动DatePicker的BeforeShowDay大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个Datepicker与以下代码我有一个dropdownBox,并在dropDown框中更改我想启动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",data: {
            date: new Date($("#myDiv").datepicker("getDate").toString("yyyy/MM/dd")),userID: userID
        },success: function(data) {
            freeDate = eval(data);
        },error) {}
    });
    $("#myDiv").datepicker("setDate",$("#myDiv").datepicker("getDate").toString("yyyy/MM/dd"));
});

解决方法

beforeShowDay是在一天呈现之前由datepicker触发的事件。您可以使用它来自定义如何显示包含该日期的单元格,例如您可以将其变为红色以指示阻止的日期。

从我从你的问题中可以看出,您可以调用datapicker.refresh()方法来指示freeDate变量已经更改(例如通过AJAX响应),并且需要再次渲染日历。

编辑

我相信这是你的下拉列表的代码,好像它使用ajax:

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

在成功回调中,你有:

freeDate = eval(data);

这是freeDate更改的地方,这可能是您应该调用.refresh()方法的地方。请注意,认情况下,AJAx是异步的,所以选择值和成功事件回调之间有一些延迟。

这里是如何调用现有日期戳的方法

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

大佬总结

以上是大佬教程为你收集整理的jquery – 如何从另一个功能启动DatePicker的BeforeShowDay全部内容,希望文章能够帮你解决jquery – 如何从另一个功能启动DatePicker的BeforeShowDay所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。