jQuery datepicker阻止在到达日期之前选择日期

时间:2013-07-08 13:05:09

标签: jquery

我坚持使用这段代码,我可以选择arrivalDate和departureDate并显示天数,我也可以阻止用户选择过去的一天,即今天之前没有日期。

但是我被困的地方是如果他们选择在2013年7月11日到达日期,我怎么能阻止他们选择在2013年7月8日或2013年10月10日等之间的一天中离开日期。

我尝试将#arrivalDate作为datepicker中的选项,以阻止用户返回但无法使其工作。

任何帮助将不胜感激

$("#ArrivalDate").datepicker({
    numberOfMonths: 1,
    dateFormat: 'dd/mm/yy',
    minDate: 0,
});

$('#DepartDate').datepicker({
    numberOfMonths: 1,
    dateFormat: 'dd/mm/yy',
    minDate: 0,
    onSelect: function () {
        var diff = dateDiff($('#ArrivalDate').datepicker("getDate"),
        $('#DepartDate').datepicker("getDate"));
        if (diff == 0) {
            $("#noDays").html("1 day");
        } else if (diff == 1) {
            $("#noDays").html(diff + " day");
        } else {
            $("#noDays").html(diff + " days");
        }
        alert(diff);
    }
});

function dateDiff(startDate, endDate) {
    if (endDate && startDate) return (endDate.getTime() - startDate.getTime()) / (1000 * 60 * 60 * 24);
    return "Please enter arrival and departure dates!";
} 

1 个答案:

答案 0 :(得分:1)

您需要使用DepartDate选择ArrivalDate datepicker中的minDate选项:

活生生的例子:http://jsfiddle.net/YtazW/

$("#ArrivalDate").datepicker({
    numberOfMonths: 1,
    dateFormat: 'dd/mm/yy',
    minDate: 0,

    onSelect: function () {
        $('#DepartDate').datepicker('option', {
            minDate: $(this).datepicker('getDate')
        });
    }
});

活生生的例子:http://jsfiddle.net/YtazW/