0

嗨,我有一个应用程序,用户可以在其中选择开始日期时间和结束日期时间,如果他们想创建一个事件。现在这是一个我使用 KendoUI 日期时间插件的 html:

<div class="demo-section" style="width: 535px;">
                <label for="start">Start date:</label>
                <input id="start" value="01/01/2013" />

                <label for="end" style="margin-left:3em">End date:</label>
                <input id="end" value="01/01/2013"/>
            </div>
</li>

<script type="text/javascript">
$(document).ready(function(){

function startChange() {
    var startDate = start.value();
    if (startDate) {
        startDate = new Date(startDate);
        startDate.setDate(startDate.getDate());
        end.min(startDate);
    }
}

function endChange() {
    var endDate = end.value();

    if (endDate) {
        endDate = new Date(endDate);
        endDate.setDate(endDate.getDate());
        start.max(endDate);
    }
}

var start = $("#start").kendoDateTimePicker({
    change: startChange,
    parseFormats: ["MM/dd/yyyy"]
}).data("kendoDateTimePicker");

var end = $("#end").kendoDateTimePicker({
    change: endChange,
    parseFormats: ["MM/dd/yyyy"]
}).data("kendoDateTimePicker");

start.max(end.value());
end.min(start.value());

});

问题是我无法获得我想要的验证。假设用户选择From日期,该To日期应显示大于当前选择日期的日期。我当前From的代码似乎效果不佳。谢谢

4

1 回答 1

0

您是说您希望能够选择一个From大于的日期To,并且当您这样做时To应该自动更新为大于From

如果是这样,你就快到了。您只需要更新startChange函数以更新To相对于From.

function startChange() {
    var startDate = start.value();
    if (startDate) {
        startDate = new Date(startDate);
        startDate.setDate(startDate.getDate());
        end.min(startDate);
        var endDate = end.value();
        if (endDate && endDate <= startDate) {
            endDate.setDate(startDate.getDate() + 1);
            end.value(endDate);
        }
    }
}

检查这个jsFiddle以获得完整的工作示例。

于 2013-03-13T10:41:39.403 回答