更新时间:2023-01-29 20:30:56
.datepicker(刷新)
方法,只要禁用/启用日期变更 - 即当你通过AJAX得到新的结果 $。inArray
将无法按预期 VAR datelist = []; //初始化空数组
$(#日期选择器)。日期选择器({
beforeShowDay:函数(D){
//正常化的日期进行搜索的数组
VAR DMY =;
。DMY + =(00+ d.getDate())的片(-2)+ - ;
DMY = +(00+(d.getMonth()+ 1))的片(-2)+ - 。
DMY + = d.getFullYear();
返回[$ .inArray(DMY,datelist)> = 0?真假, ];
}
});
$(#键)。点击(函数(){
datelist = []; //空数组
$。员额(/回声/ HTML /,{
这里//参数
}, 功能() {
VAR的结果= "28-02-2012,29-02-2012,01-03-2012,02-03-2012,03-03-2012,04-03-2012,05-03-2012,06-03-2012,07-03-2012,08-03-2012,09-03-2012,28-02-2012,29-02-2012,01-03-2012,02-03-2012,03-03-2012,04-03-2012,05-03-2012,06-03-2012,07-03-2012,08-03-2012,09-03-2012"; //虚结果
datelist = result.split(,); //填充阵列
$(#日期选择器)日期选择器(刷新)。 //告诉日期选择器,它需要重新绘制自己
});
Here I send movie id and get available days and I want to set it into calendar. but it is not working and it disable all dates. From the PHP it returns date string. Date string is coming correctly but the calendar is not working. Please help.
Date string example
"28-02-2012","29-02-2012","01-03-2012","02-03-2012","03-03-2012","04-03-2012","05-03-2012","06-03-2012","07-03-2012","08-03-2012","09-03-2012","28-02-2012","29-02-2012","01-03-2012","02-03-2012","03-03-2012","04-03-2012","05-03-2012","06-03-2012","07-03-2012","08-03-2012","09-03-2012"
Code
jQuery.post('index.php', {
'option': 'com_movie',
'controller': 'reservation',
'task': 'datelist',
'format': 'raw',
'mid': movieid
}, function(result) {
var onlydates = result.split(',');
jQuery("#datepicker").datepicker({
dateFormat: 'yy-mm-dd',
showOn: "button",
buttonImage: "<?php echo IMAGES_LINK.'calendar.png';?>",
buttonImageOnly: true,
beforeShowDay: function(date) {
dmy = date.getDate() + "-" + (date.getMonth() + 1) + "-" + date.getFullYear();
console.log(dmy + ' : ' + (jQuery.inArray(dmy, onlydates)));
if (jQuery.inArray(dmy, onlydates) != -1) {
return [true, "", "Available"];
} else {
return [false, "", "unAvailable"];
}
}
});
return;
});
.datepicker("refresh")
method whenever disabled/enabled dates change -- i.e. when you get new results through AJAX$.inArray
won't work as expectedvar datelist = []; // initialize empty array
$("#datepicker").datepicker({
beforeShowDay: function(d) {
// normalize the date for searching in array
var dmy = "";
dmy += ("00" + d.getDate()).slice(-2) + "-";
dmy += ("00" + (d.getMonth() + 1)).slice(-2) + "-";
dmy += d.getFullYear();
return [$.inArray(dmy, datelist) >= 0 ? true : false, ""];
}
});
$("#button").click(function() {
datelist = []; // empty the array
$.post("/echo/html/", {
// parameters here
}, function() {
var result = "28-02-2012,29-02-2012,01-03-2012,02-03-2012,03-03-2012,04-03-2012,05-03-2012,06-03-2012,07-03-2012,08-03-2012,09-03-2012,28-02-2012,29-02-2012,01-03-2012,02-03-2012,03-03-2012,04-03-2012,05-03-2012,06-03-2012,07-03-2012,08-03-2012,09-03-2012"; // dummy result
datelist = result.split(","); // populate the array
$("#datepicker").datepicker("refresh"); // tell datepicker that it needs to draw itself again
});