jQuery Ui beforeShowDay - 禁用某些日期

时间:2013-07-11 15:04:45

标签: php jquery ajax jquery-ui

我正在使用对PHP的Ajax调用来返回用户可用的日期字符串,以使其动态化。

我将字符串返回给我的jQuery:

['7-15-2013','7-16-2013','7-17-2013','7-18-2013','7-19-2013','7-20-2013','7-21-2013','7-22-2013']

但是,当我初始化datePicker时,该日期字符串不会加载。

我不太清楚为什么,我怀疑在Ajax调用之后我的成功功能。

我的jQuery代码如下所示:

$('.vendor_id').change(function()
    {
        var vendor_id = $('option:selected', this).attr('title');

        var url = "/admin/po/get_user_dates/" + vendor_id;

        $.ajax({
            type : "POST",
            url  : url,
            success: function(unavaildates)
            {
                var disabledDays = unavaildates;

                function disableAllTheseDays(date) {
                    var m = date.getMonth(), d = date.getDate(), y = date.getFullYear();
                    for (i = 0; i < disabledDays.length; i++) {
                        if($.inArray((m+1) + '-' + d + '-' + y,disabledDays) != -1) {
                            return [false];
                        }
                    }
                    return [true];
                }


                $('.booking-date').datepicker(
                        {
                            beforeShowDay: disableAllTheseDays,
                            numberOfMonths: 2,
                            dateFormat: 'DD, d MM, yy',
                            showButtonPanel: true
                        }
                )

            }
        })
    })

希望有人打电话帮助我。

快速更新..将disabledDays分配给['7-15-2013','7-16-2013','7-17-2013','7-18-2013','7-19-2013 ','7-20-2013','7-21-2013','7-22-2013'] datePicker有效......?

提前致谢。

1 个答案:

答案 0 :(得分:2)

因为您正在从服务器检索字符串而不是数组。

我建议从服务器返回没​​有方括号"'7-15-2013','7-16-2013','7-17-2013','7-18-2013','7-19-2013','7-20-2013','7-21-2013','7-22-2013'"的字符串,然后像这样创建数组:

var unavaildates = "'7-15-2013','7-16-2013','7-17-2013','7-18-2013','7-19-2013','7-20-2013','7-21-2013','7-22-2013'"
var disabledDays = unavaildates.split(',');