Kendo UI DatePicker 在更改事件后不设置值 运行

Kendo UI DatePicker Does Not Set Value After Change Event Run

我在页面上有两个 Kendo UI DatePicker 对象。它们都设置了一个在 document.ready() 中调用的函数。在日期更改时运行更改事件后,从 document.ready() 调用的相同函数再次运行。但是这次第一个datepicker对象没有设置值。我像下面这样使用它

var endPicker = $("#endDate").data("kendoDatePicker");
var beginPicker = $("#startDate").data("kendoDatePicker");
if ($("#today").is(':checked')) {
 beginPicker.value(new Date());//this one sets null not the date
 endPicker.value(new Date());
}

有些东西阻止设置第一个日期选择器的值。更改事件仅用于验证日期范围,开始和结束日期选择器分别调用它们

 function startChange() {
        var endPicker = $("#endDate").data("kendoDatePicker"),
            first = this.value();

        if (first) {
            first = new Date(first);
            first.setDate(first.getDate() + 1);
            endPicker.min(first);
        }
        dateChanged();//calls ajax
    }

    function endChange() {
        var startPicker = $("#startDate").data("kendoDatePicker"),
            second = this.value();

        if (second) {
            second = new Date(second);
            second.setDate(second.getDate() - 1);
            startPicker.max(second);
        }
        dateChanged();//calls ajax
    }

啊,我终于找到问题所在了,为什么第一个日期选择器不能设置今天的值。这都是关于第二个日期选择器的更改事件。它将自己的值 -1 设置为第一个日期选择器的最大值。所以它应该写成 second.setDate(second.getDate()); 在这种情况下,他们设置 new Date() 作为他们的新值。