0

我在两个输入框中启用了 jquery 日期范围选择器来选择开始日期和结束日期,默认值为 startDateInput=Start Date 和 endDateInput=End Date。但是当单击开始输入框并选择开始日期时,写入 endDateInput 的值等于结束日期变为空。我正在使用的脚本如下:

startDate(开始日期选择输入框名称) endDate(结束日期选择输入框名称)

$(function () {
    $("#startDate").datepicker({
        defaultDate: "+1w",
        changeMonth: true,
        numberOfMonths: 1,
        minDate: new Date(2012, 11 - 1, 27),
        maxDate: -1,
        onClose: function (selectedDate) {
            $("#endDate").datepicker("option", "minDate", selectedDate);
        }
    });
    $("#endDate").datepicker({
        defaultDate: "+1w",
        changeMonth: true,
        numberOfMonths: 1,
        minDate: new Date(2012, 11 - 1, 28),
        maxDate: -1,
        onClose: function (selectedDate) {
            $("#startDate").datepicker("option", "maxDate", selectedDate);
        }
    });
});
4

3 回答 3

2

在函数中赋值之前转换selectedDate成对象。DatedatepickeronClose

如下修改您的代码。

$(function () {
    $("#startDate").datepicker({
        defaultDate: "+1w",
        changeMonth: true,
        numberOfMonths: 1,
        minDate: new Date(2012, 11 - 1, 27),
        maxDate: -1,
        onClose: function (selectedDate) {
            $("#endDate").datepicker("option", "minDate",new Date(selectedDate));
        }
    });
    $("#endDate").datepicker({
        defaultDate: "+1w",
        changeMonth: true,
        numberOfMonths: 1,
        minDate: new Date(2012, 11 - 1, 28),
        maxDate: -1,
        onClose: function (selectedDate) {
            $("#startDate").datepicker("option", "maxDate", new Date(selectedDate));
        }
    });
});

参考:检查演示

于 2013-01-22T05:08:23.337 回答
1

如果你在谈论水印,那么你可以试试这个:

$(function () {
        $("#startDate").datepicker({
            defaultDate: "+1w",
            changeMonth: true,
            numberOfMonths: 1,
            minDate: new Date(2012, 11 - 1, 27),
            maxDate: -1,
            onClose: function (selectedDate) {
                if ($("#endDate").val() != 'End Date') {
                    $("#endDate").datepicker("setDate", selectedDate);
                }
            }
        });
        $("#endDate").datepicker({
            defaultDate: "+1w",
            changeMonth: true,
            numberOfMonths: 1,
            minDate: new Date(2012, 11 - 1, 28),
            maxDate: -1,
            onClose: function (selectedDate) {
                if ($("startDate").val() != 'Start Date') {
                    $("#startDate").datepicker("setDate", selectedDate);
                }
            }
        });
    });
于 2013-01-22T05:21:47.203 回答
0

设置日期的方式不正确。

代替:

$("#endDate").datepicker("option", "minDate", selectedDate);

和:

 $("#endDate").datepicker("setDate", selectedDate);

并替换:

$("#startDate").datepicker("option", "maxDate", selectedDate);

和:

$("#startDate").datepicker("setDate", selectedDate);

我希望它会有所帮助。

于 2013-01-22T05:15:55.953 回答