我想在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);
};