0

我尝试使用单击事件设置 2 个日期选择器。

我的代码看起来像这样

$('#previous3Days').click(function () {

    var a = $('#MonthBis').data('kendoDatePicker').value();
    var d = $('#MonthVon').data('kendoDatePicker').value();
    d.setDate(d.getDate() - 3);

    $('#MonthVon').data('kendoDatePicker').value(d);
    $('#MonthBis').data('kendoDatePicker').value(a);
    if (a !== d) {
        $('#MonthBis').data('kendoDatePicker').value(a);
        a.setDate(a.getDate() - 3);
    }
});

我的问题是 KendoComboBox 不会更改“Monthbis”的值。

我尝试了所有可能性,例如 if (a>d) 或 (a!=d)。

如果我使用 (a>=d) 每次点击两个日期都会改变。

我还根据这个检查了浏览器中的控制台,这两个日期总是相同的,我看不出我的错。

4

1 回答 1

1

我认为问题出在您程序的逻辑中...

更改MonthVon是可以的,因为您(按顺序)您写道:

var d = $('#MonthVon').data('kendoDatePicker').value(); // Line 4
d.setDate(d.getDate() - 3);                             // Line 5
$('#MonthVon').data('kendoDatePicker').value(d);        // Line 7

但是因为MonthBis逻辑很奇怪......这就是你写的:

var a = $('#MonthBis').data('kendoDatePicker').value(); // Line 3
$('#MonthBis').data('kendoDatePicker').value(a);        // Line 8

所以到目前为止你什么也没做,因为你读和写了相同的值。

然后你检查 a !== c 如果是这样你做:

$('#MonthBis').data('kendoDatePicker').value(a);        // Line 10
a.setDate(a.getDate() - 3);                             // Line 11

您进行了修改a,但您对它的价值无所作为,因此它实际上什么也没做。

可能,您应该交换第 10 行和第 11 行,这样您就可以:

$('#previous3Days').click(function () {
    var d = $('#MonthVon').data('kendoDatePicker').value();
    d.setDate(d.getDate() - 3);
    $('#MonthVon').data('kendoDatePicker').value(d);

    var a = $('#MonthBis').data('kendoDatePicker').value();
    if (a !== d) {
        a.setDate(a.getDate() - 3);
        $('#MonthBis').data('kendoDatePicker').value(a);
    }
});
于 2013-09-19T01:12:36.660 回答