javascript - 多日期选择器 : Disable dates from a list

标签 javascript jquery model-view-controller

我想使用以下方法,但使用列表而不是几个日期。

addDisabledDates: [today.setDate(1), today.setDate(3)]

这是我的日历的代码:

$("#ExceptionDates").multiDatesPicker({

    defaultDate: "+1w",
    firstDay: 1,
    dateFormat: "dd.mm.yy",
    numberOfMonths: 1,
    **addDisabledDates: ['06/19/2012','06/20/2012'],** (NOT working)
    onSelect: function ()
    {
        var dates = $("#ExceptionDates").multiDatesPicker('getDates');
        var html = '';
        $.each(dates, function (i, val)
        {
            html += '<input type="text" name="Dates" value="' + val + '">';
        });

        $("#SelectedDates").html(html);
    }
});

这是获取日期的方法:

var getSelectedExceptionDates = function(callback)
{
    $.ajax({
        type: "POST",
        url: "/Route/GetSelectedExceptionDates/",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (response)
        {
            callback(response);
        },
        error: function (err)
        {
            console.log(err);
        }
    });

};

var callback = function (dates)
{
    $.each(dates, function (i, date)
    {
        var splitDate = date.split('.');

    var day = splitDate[0];
    var month = splitDate[1];
    var year = splitDate[2];

    console.log(splitDate);
    console.log(new Date(year, (parseInt(month)-1).toString(), day));
});

};

getSelectedExceptionDates(callback);

这就是我现在通过检查网站得到的结果:

["12", "11", "2009"] General.js:101 2009 年 11 月 12 日星期四 00:00:00 GMT+0100(西欧标准时间)

有两种不同的类型导致我记录两个 atm。

关于如何将我的日期列表插入 addDisabledDates 方法有什么想法吗?

编辑:我成功了!

var callback = function (dates)
    {
        var date_ary = new Array();
        $.each(dates, function (i, date)
        {
            var splitDate = date.split('.');

            var day = splitDate[0];
            var month = splitDate[1];
            var year = splitDate[2];
            date_ary.push(new Date(month + "/" + day + "/" + year));
        });

        console.log(date_ary);

        $("#ExceptionDates").multiDatesPicker({
            minDate: 0,
            defaultDate: "+1w",
            firstDay: 1,
            dateFormat: "dd.mm.yy",
            addDisabledDates: date_ary,
            numberOfMonths: 1,
            onSelect: function ()
            {
                var dates = $("#ExceptionDates").multiDatesPicker('getDates');
                var html = '';
                $.each(dates, function (i, val)
                {
                    html += '<input type="text" name="Dates" value="' + val + '">';
                });

                $("#SelectedDates").html(html);
            }
        });
    };
    getSelectedExceptionDates(callback);

var getSelectedExceptionDates = function (callback)
{
    $.ajax({
        type: "POST",
        url: "/Route/GetSelectedExceptionDates/",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (response)
        {
            callback(response);
        },
        error: function (err)
        {
            console.log(err);
        }
    });
};

最佳答案

$("#ExceptionDates").multiDatesPicker({

defaultDate: "+1w",
firstDay: 1,
dateFormat: "dd.mm.yy",
numberOfMonths: 1,
addDisabledDates: getSelectedExceptionDates(callback),
onSelect: function ()
  {
    var dates = $("#ExceptionDates").multiDatesPicker('getDates');
    var html = '';
    $.each(dates, function (i, val)
    {
        html += '<input type="text" name="Dates" value="' + val + '">';
    });

    $("#SelectedDates").html(html);
  }
 });

var getSelectedExceptionDates = function(callback)
{
    $.ajax({
        type: "POST",
        url: "/Route/GetSelectedExceptionDates/",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (response)
        {
            return callback(response);
        },
        error: function (err)
        {
            console.log(err);
        }
    });

};
var callback = function (dates)
{
    var date_ary = new Array();
    $.each(dates, function (i, date)
    {
        var splitDate = date.split('.');

        var day = splitDate[0];
        var month = splitDate[1];
        var year = splitDate[2];
        date_ary.push(month + "/" + day + "/" + year );

    });
    return date_ary;
};

getSelectedExceptionDates(callback);

关于javascript - 多日期选择器 : Disable dates from a list,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12313101/

相关文章:

javascript - 未捕获的 promise Dom 异常

javascript - 如何编写这个以在 onclick 上工作

javascript - 如何遍历所有div并获取特定属性?

javascript - 如何将 Rails-Jquery 添加回 Rails 应用程序?

spring - 使用 Spring MVC 在浏览器新窗口上显示存储在网络服务器上的 PDF 文件

java - Spring MVC 由于 View 错误而渲染 404

javascript - Windows Server 2003 上不显示 HTML5 拖放样式

javascript - 如何使用 clientWidth 获取元素的宽度值?

php - 从数据库获取 Google map 标记到 map

c# - 调用不同的 AJAX 帖子后,MVC AJAX 表单不会提交