带有两个字段的jQueryUI Datepicker

时间:2013-11-20 11:32:15

标签: jquery jquery-ui datepicker

我正在尝试整理我网站上的所有小小的砰砰声,但是使用jQuery来解决所有问题。这包括使用jQuery UI作为datepicker。

datepicker有两个实例,ArrivalDate和DepartureDate,我需要动态设置Departure Date到用户刚刚输入ArrivalDate的日期。 即如果用户选择了12月25日作为到达日期,则DepartureDate应该将26 Dec作为默认值,并且应禁用12月26日之前的所有日期。

我已经尝试过在StackOverflow和其他地方找到的一些东西的帮助,但它们似乎都不适合我。这就是我目前所拥有的:

$('#ArrivalDate').datepicker({
minDate: 0,
defaultDate: 0,
dateFormat: "d M yy",
changeMonth: true,
changeYear: true,
onClose: function(dateText, inst){
    var d = $.datepicker.parseDate(inst.settings.dateFormat, dateText);
    d.setDate(d.getDate()+1);
    $('#DepartureDate').val($.datepicker.formatDate(inst.settings.dateFormat, d));
}

}),
$('#DepartureDate').datepicker({
minDate: "d",
defaultDate: "d",
dateFormat: "d M yy",
changeMonth: true,
changeYear: true,
}),

但DepartureDate仍然将minDate和defaultDate视为'0'。

1 个答案:

答案 0 :(得分:0)

这可以很容易地解决,这是一个工作小提琴:http://jsfiddle.net/dwaddell/Q2kkG/

onClose: function (dateText, inst) {
        var d = $.datepicker.parseDate(inst.settings.dateFormat, dateText);
        d.setDate(d.getDate() + 1);
        $('#DepartureDate').val($.datepicker.formatDate(inst.settings.dateFormat, d));
        $('#DepartureDate').datepicker('option', {
            minDate: $.datepicker.formatDate(inst.settings.dateFormat, d)
        });
    }

此外,您可能希望在http://api.jqueryui.com/datepicker/#method-setDate查看API,您可能希望在我更改之前使用setDate而不是val。或者两者兼而有之。