MVC日期时间选择器验证

时间:2012-10-15 08:37:52

标签: asp.net asp.net-mvc

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

也是一个条件,结束日期不应小于开始日期。 我怎么可能?

$(document).ready(function()  {

    $("#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选择的date.how我可以在选择日期时间选择器时获得选择日期吗?

1 个答案:

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

}​

DEMO http://jsfiddle.net/XdFpg/