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

Javascript 如何在datepicker中动态禁用不可用日期,javascript,jquery,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"]; 如果我动态地得到这个值,它就不起作用了,我怎样才能解决这个问题呢 我的代码出了什么问题。有人帮我吗?给你,正如我在评论中提到的,下面更新了代码 更新小提琴- 试

我正在尝试动态禁用不可用的日期我如何才能做到这一点

如果我给静态值如下,它的工作很好

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"];  
如果我动态地得到这个值,它就不起作用了,我怎样才能解决这个问题呢


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

给你,正如我在评论中提到的,下面更新了代码

更新小提琴-

试试这个

只需更改日期格式,如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, '', ''];
        }
    });

});
$(文档).ready(函数(){
var Desingndate=$('#designidunavailable').html();
var splitdate=Desingndate.split(',');
//console.log(splitdate.length);
var arrDisabledDates={};
对于(变量i=0;i
同时在fiddle和此处更新html
$('#designidunavailable').html()
将给您一个字符串,而
unavailableDates
需要一个数组。您的
.html()
内容是什么?尝试使用
$('#designidunavailable').html().split(',')
如果是逗号分隔的日期检查我更新的小提琴:)如何做到这一点
$('#designidunavailable').html().split(',')
你能给我一个演示吗@Amit.rk3对不起,我知道split我需要预期的结果@Stormiethanks Amit它在小提琴上工作得很好,但没有在我的项目上工作:)谢谢你一次的帮助again@QuestionUser:可能是因为我在fiddle中使用了不同的jquery版本?
var unavailableDates =$('#DesignIdUnavialble').html().replace(/\"/g,'').split(",");
console.log(unavailableDates);
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("3-3-2015"),
        dateFormat: 'dd MM yy',
        beforeShowDay: unavailable
    });

});
$(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, '', ''];
        }
    });

});