1

我有一个 MVC 应用程序。我的页面包含两个日期时间选择器。开始日期和结束日期。我的要求是,当任何人选择开始日期时,结束日期应计算为开始日期 +10 天。

还有一个条件,结束日期不应早于开始日期。我怎么可能?

$(文档).ready(函数 () {

    $("#txtstartdate").datepicker
        ({
            dateFormat: 'mm/dd/yy',
            showAnim: "slideDown",
            showOptions: {
                origin: ["top", "left"]
            }
        });

    $("#txtEnddate").datepicker
        ({
            dateFormat: 'mm/dd/yy',
            showAnim: "slideDown",
            showOptions: {
                origin: ["top", "left"]
            }
        });

});

我正在使用 jquery 日期时间选择器。

我只是使用了 javascript 代码,但是当我选择日期时间选择器时,它总是显示 prevoius 选择的日期。如何在选择日期时间选择器时获得选定的日期?

4

1 回答 1

0

尝试这个:

$(function () 
{
    $('#txtStartDate, #txtEndDate').datepicker(
    {
        showOn: "both",
        beforeShow: customRange,
        dateFormat: 'mm/dd/yy',
        showAnim: "slideDown",
        showOptions: {
            origin: ["top", "left"]
        },
        firstDay: 1, 
        changeFirstDay: false
    });

});

function customRange(input) 
{ 
    var min = new Date(2008, 11 - 1, 1); //the absolute minimum date
        var dateMin = min;
        var dateMax = null;
        var dayRange = 10;  //range of days


        if (input.id == "txtStartDate") 
        {
            if ($("#txtEndDate").datepicker("getDate") != null)
            {
                dateMax = $("#txtEndDate").datepicker("getDate");
                dateMin = $("#txtEndDate").datepicker("getDate");
                dateMin.setDate(dateMin.getDate() - dayRange);
                if (dateMin < min)
                {
                        dateMin = min;
                }
             }
             else
             {
                dateMax = new Date(); //the absolute maximum date
             }                      
        }
        else if (input.id == "txtEndDate")
        {
                dateMax = new Date(); //the absolute maximum date
                if ($("#txtStartDate").datepicker("getDate") != null) 
                {
                        dateMin = $("#txtStartDate").datepicker("getDate");
                        var rangeMax = new Date(dateMin.getFullYear(), dateMin.getMonth(), dateMin.getDate() + dayRange);

                        if(rangeMax < dateMax)
                        {
                            dateMax = rangeMax; 
                        }
                }
        }
    return {
                minDate: dateMin, 
                maxDate: dateMax,
            }; 

}​

演示:http: //jsfiddle.net/XdFpg/

于 2012-10-15T09:41:14.283 回答