我想在jquery UI datepicker中调用beforeShowDay函数,但是我发现该位置
之前的ShowShowDay很重要,我一无所知。

代码将帮助:

<script>
    var datePickerOptions = {
        minDate: 'today',
        beforeShowDay: available
    };

    /*This is a function only let datePicker show the dates in dateList*/
    var available = function(date){
        window.console.log("in");
        var dmy = (date.getMonth() + 1) + "-" + date.getDate() + "-" + date.getFullYear();
        if($.inArray( dmy, dateList ) !== -1 ) {
            return [true, "", "Available"];
        }
        else {
            return [false, "", "unAvailable"];
        }
    };

    var init = function(availableDates) {
        $('.datePicker').datepicker(datePickerOptions);
    };
</script>


如果我以这种方式编写它,minDate可以工作,但beforeShowDay不能,控制台不会打印“ in”。

但是如果我这样写:

var init = function(availableDates) {
    $('.datePicker').datepicker({
        minDate: 'today',
        beforeShowDay: available
    });
};


我没有看到这两种方法之间的真正区别,我真的想使用第一种方法。

有任何想法吗?谢谢。

最佳答案

这是因为,当使用available创建datePickerOptions对象时,它没有使用值进行初始化,因此它具有未定义的值,与在这种情况下不传递选项相同。在初始化datePickerOptions变量以解决问题后,可以移动available的创建。

/*This is a function only let datePicker show the dates in dateList*/
var available = function(date){
    window.console.log("in");
    var dmy = (date.getMonth() + 1) + "-" + date.getDate() + "-" + date.getFullYear();
    if($.inArray( dmy, dateList ) !== -1 ) {
        return [true, "", "Available"];
    }
    else {
        return [false, "", "unAvailable"];
    }
};

var datePickerOptions = {
    minDate: 'today',
    beforeShowDay: available
};

var init = function(availableDates) {
    $('.datePicker').datepicker(datePickerOptions);
};

09-30 13:03