【问题标题】:Bootstrap Datepicker beforeShowDay: function (date) date is undefinedBootstrap Datepicker beforeShowDay:函数(日期)日期未定义
【发布时间】:2014-02-21 08:32:38
【问题描述】:

我想禁用日期选择器中的一些日期。但是“日期”在 disableDates 中始终未定义。有什么我想念的吗?我是 javascript 新手,所以可能有些东西我还不太明白。

ko.bindingHandlers.datepicker = {
    init: function(element, valueAccessor, allBindingsAccessor) {
        var options = allBindingsAccessor().datepickerOptions || {},
            $el = $(element);


        //initialize datepicker with some optional options
        $el.datepicker(options);
        $el.datepicker('setEndDate', new Date);
        $el.datepicker('beforeShowDay', disableDates());

        function disableDates(date) {
            self.getDates();
            var showDate = true;
            for (var i = 0; i < self.dates.length; i++) {
                if (date.toDateString() === new Date(self.dates()[i].ReportingDate).toDateString()) {
                    showDate = false;
                }
            }
            return [showDate, ""];

        }

        //handle the field changing
        ko.utils.registerEventHandler(element, "change", function() {
            var observable = valueAccessor();
            observable($el.datepicker("getDate"));
        });

        //handle disposal (if KO removes by the template binding)
        ko.utils.domNodeDisposal.addDisposeCallback(element, function() {
            $el.datepicker("destroy");
        });
    },

    update: function (element) {
        var value = self.ReportingDate(),
            $el = $(element),
            current = $el.datepicker("getDate");
        if (value - current !== 0) {
            $el.datepicker("setDate", value);
        }
    }
};

};

【问题讨论】:

    标签: javascript twitter-bootstrap datepicker


    【解决方案1】:

    试试

    //initialize datepicker with some optional options
    $.extend(options, {
        beforeShowDay: disableDates
    })
    $el.datepicker(options);
    $el.datepicker('setEndDate', new Date);
    

    【讨论】:

    • 当我尝试它永远不会进入函数时。
    • @LadyBug 打开日期选择器时会调用该函数
    • @LadyBug 也没有名为 setEndDate 的方法,你想用它做什么
    • @LadyBug 一个简单的 jQuery 示例看起来像 jsfiddle.net/arunpjohny/mJ4F6/1
    • setEndDate 禁用今天之后的所有日期。这个工作正常。但是即使我打开日期选择器,也永远不会调用 beforShowDay。
    猜你喜欢
    • 2013-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多