【问题标题】:Add class to specific days in Bootstrap Datetime picker after data receives from Ajax从 Ajax 接收数据后,将类添加到 Bootstrap 日期时间选择器中的特定日期
【发布时间】:2017-08-15 09:54:16
【问题描述】:

客户端从 ajax 接收数据后,我想在 Bootstrap 中为可用日期添加活动类。页面上的日历不是选择器。它总是在弹出后显示。

我尝试设置日期时间数组并在“ShowBeforeDay”事件中添加类。但它不起作用。

var active_dates = ["21/8/2017", "25/8/2017"];
            console.log('main page');
            $('#div_datetime').datepicker(
                {
                    format: "dd/mm/yyyy",
                    beforeShowDay: function (date) {
                        console.log("da..tata..ta");
                        var d = date;
                        var curr_date = d.getDate();
                        var curr_month = d.getMonth() + 1; //Months are zero based
                        var curr_year = d.getFullYear();
                        var formattedDate = curr_date + "/" + curr_month + "/" + curr_year

                        if ($.inArray(formattedDate, active_dates) != -1) {
                            return {
                                classes: 'activeClass'
                            };
                        }
                        return;
                    }
                }
            );

从 Ajax 接收数据后,如何在 Bootstrap Datetime 中添加特定日期的类?

【问题讨论】:

    标签: jquery twitter-bootstrap bootstrap-datepicker


    【解决方案1】:

    根据the docs,您必须返回一个数组,其中

    [0]false(禁用日期)或true(启用日期)
    [1] 要添加到此日期的类。

    所以要修复你的代码,只需替换它的最后一部分:

    if ($.inArray(formattedDate, active_dates) != -1) return [1, "activeClass"]
    else return [0]
    

    【讨论】:

    • "beforeShowDay" 弹窗显示时不触发事件。
    • 你是什么意思?我测试代码时调用了beforeShowDay 函数。
    • 正如我所说,日历不是选择器。它总是在模态弹出后显示。我认为这是因为“beforeShowDay”不起作用。
    • beforeShowDay 绝对有效。但是您必须在更改数组中的日期后“刷​​新”日历。您可以使用 $("#div_datetime").datepicker("refresh") 执行此操作。
    • 知道了。我还需要在 $(function ()); 之外为 datepicker 编写代码。范围。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-13
    • 2023-03-20
    相关资源
    最近更新 更多