Asp.net MVC日期时间选择器验证

Asp.net MVC日期时间选择器验证,asp.net,asp.net-mvc,Asp.net,Asp.net Mvc,我有一个MVC应用程序。我的页面包含两个日期时间选择器。开始日期和结束日期。我的要求是, 当任何人选择开始日期时,结束日期应计算为开始日期+10天 还有一个条件,结束日期不应小于开始日期。 我怎么可能 $(文档).ready(函数() { 我正在使用jquery日期时间选择器 我刚刚使用了javascript代码,但当我选择日期时间选择器时,它总是显示上一个选定日期。如何在选择日期时间选择器时获取选定日期?尝试以下操作: $(function () { $('#txtStartDate

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

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

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

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

我刚刚使用了javascript代码,但当我选择日期时间选择器时,它总是显示上一个选定日期。如何在选择日期时间选择器时获取选定日期?

尝试以下操作:

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

}​
$(函数()
{
$('#txtStartDate,#txtEndDate')。日期选择器(
{
showOn:“两者”,
展会前:定制范围,
日期格式:“mm/dd/yy”,
showAnim:“滑下”,
展示选项:{
原点:[“顶部”、“左侧”]
},
第一天:1,
第一天:假
});
});
功能自定义范围(输入)
{ 
var min=新日期(2008,11-1,1);//绝对最小日期
var dateMin=min;
var dateMax=null;
var dayRange=10;//天数范围
if(input.id==“txtStartDate”)
{
if($(“#txtEndDate”).datepicker(“getDate”)!=null)
{
dateMax=$(“#txtEndDate”).datepicker(“getDate”);
dateMin=$(“#txtEndDate”).datepicker(“getDate”);
dateMin.setDate(dateMin.getDate()-dayRange);
如果(日期分钟<分钟)
{
dateMin=min;
}
}
其他的
{
dateMax=new Date();//绝对最长日期
}                      
}
else if(input.id==“txtEndDate”)
{
dateMax=new Date();//绝对最长日期
if($(“#txtStartDate”).datepicker(“getDate”)!=null)
{
dateMin=$(“#txtStartDate”).datepicker(“getDate”);
var rangeMax=new Date(dateMin.getFullYear()、dateMin.getMonth()、dateMin.getDate()+dayRange);
如果(范围最大值<日期最大值)
{
dateMax=rangeMax;
}
}
}
返回{
minDate:dateMin,
maxDate:dateMax,
}; 
}​

演示

感谢您的回复。

这段代码几乎成功了。但问题是我试图打印选定的日期,但它再次显示了以前的日期?所以希望没有像“aftershow”这样的事件。是的,得到了解决方案。.我使用了“onSelect”方法。.现在我得到了当前选定的日期…谢谢。。。
$(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,
            }; 

}​