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 に答える