如何在datepicker中动态禁用不可用的日期

时间:2015-07-23 11:44:50

标签: javascript jquery

我试图动态地禁用不可用的日期我该怎么做?

如果我提供静态值,如下面的工作正常

var unavailableDates = ["10-8-2015","24-7-2015","10-7-2015","09-8-2015","09-7-2015","01-12-2015","01-1-2016","11-8-2015"];  

如果我动态得到这个值,那我怎么能解决这个问题呢?

My Fiddle

var unavailableDates = $('#DesignIdUnavialble').html();

function unavailable(date) {
    dmy = date.getDate() + "-" + (date.getMonth() + 1) + "-" + date.getFullYear();
    if ($.inArray(dmy, unavailableDates) == -1) {
        return [true, ""];
    } else {
        return [false, "", "Unavailable"];
    }
}

$(function() {
    $("#iDate").datepicker({
        defaultDate: new Date("7-7-2015"),
        minDate:0,
        dateFormat: 'dd-mm-yy',
        beforeShowDay: unavailable
    });

});

我的代码出了什么问题。有人帮我吗?

2 个答案:

答案 0 :(得分:2)

试试这个Working Demo

只需更改日期格式,如m / d / Y

$(document).ready(function(){
var Desingndate = $('#DesignIdUnavialble').html();
var splitdate = Desingndate.split(',');
   // console.log(splitdate.length);
    var arrDisabledDates = {};
    for (var i = 0; i < splitdate.length; i++) {
        //console.log(splitdate[i]);    
    arrDisabledDates[new Date(splitdate[i])] = new Date(splitdate[i]);    
    }

     $("#iDate").datepicker({       
        dateFormat: 'dd-mm-yy',
        beforeShowDay: function (dt) {
            var bDisable = arrDisabledDates[dt];
            if (bDisable) return [false, '', ''];
            else return [true, '', ''];
        }
    });

});

答案 1 :(得分:1)

正如我在评论中所提到的,您可以在下面更新代码。

更新了小提琴 - Working Fiddle

var mineSpillere