jquery日期范围:如果未选择日期,则输入文本框值将更改为null

时间:2013-01-22 04:39:32

标签: jquery asp.net jquery-ui c#-4.0 jquery-ui-datepicker

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

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);
        }
    });
});

3 个答案:

答案 0 :(得分:2)

selectedDate转换为Date对象,然后分配到datepicker函数中的onClose

修改您的代码,如下所示。

$(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));
        }
    });
});

参考: 检查Demo

答案 1 :(得分: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);
                }
            }
        });
    });

答案 2 :(得分:0)

设定日期的方式不正确。

替换:

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

使用:

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

并替换:

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

with:

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

我希望它会有所帮助。