Bootstrap datepicker beforeShowday仅适用于第一次更改

时间:2015-04-14 13:30:43

标签: javascript php jquery getjson

我试图在datepicker上禁用预订日期。我的代码只是将一个ID发布到ajax.php文件,我根据该id运行一个mysql查询,并获取开始和结束日期。然后我创建一个包含这些日期和中间日期的数组。最后我得到了这个json_encoded数组,它基本上定义了我的bootstrap datepicker上禁用的日期。我最近发现$ .post方法没有任何问题,并改变了标题。问题出现在展会前,它在更改后没有重新运行。这是jQuery代码:

   $.ajaxSetup({ cache: false });
var date = new Date();
date.setDate(date.getDate());
function getJsonRes(urlid){
var tarihler = [];
var url="ajax.php";
$.post( url, {"id":urlid}, function(data) { //this is the post request
$.each( data, function(key, val) {          //to retrieve json encoded data
   var tarih=val;
    tarihler.push(tarih);
});

var disabledDays = tarihler;
function daysDisabled(date) {
for (var i = 0; i < disabledDays.length; i++) {
    if (new Date(disabledDays[i]).toString() == date.toString()) {
        return false;
    }
}
return true;

}

$('#grs').datepicker({ //this is start date
language:'tr',
todayHighlight:true,
weekStart: 1,
startDate:date,
autoclose: true,
format: 'dd-mm-yyyy',
beforeShowDay: daysDisabled
})
   .on('changeDate', function (selected) {
    startDate = new Date(selected.date.valueOf());
    startDate.setDate(startDate.getDate(new Date(selected.date.valueOf()))+1);
    $('#cks').datepicker('setStartDate', startDate);
});

$('#cks').datepicker({ //this is end date
    todayHighlight:true,
    weekStart: 1,
    language:'tr',
    autoclose: true,
    format: 'dd-mm-yyyy',
    beforeShowDay: daysDisabled
})
.on('changeDate', function (selected) {
    FromEndDate = new Date(selected.date.valueOf());
    FromEndDate.setDate(FromEndDate.getDate(new Date(selected.date.valueOf())));
    $('#grs').datepicker('setEndDate', FromEndDate);
});

}, "json");

}

$('#choice').change(function(){
var idvalue=$(this).val();
getJsonRes(idvalue);
});

0 个答案:

没有答案