【问题标题】:MVC Datetime picker validationMVC 日期时间选择器验证
【发布时间】:2012-10-15 08:37:51
【问题描述】:

我有一个 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 选择的日期。如何在选择日期时间选择器时获得选定的日期?

【问题讨论】:

    标签: asp.net asp.net-mvc


    【解决方案1】:

    试试这个:

    $(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/

    【讨论】:

    • 感谢您的回复..此代码几乎可以正常工作。但问题是我尝试打印所选日期,但它再次显示上一个日期?所以希望没有像“aftershow”这样的事件不存在.
    • 是的得到了解决方案..我使用了“onSelect”方法..现在我得到了当前选择的日期...谢谢...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-10
    • 2013-02-02
    • 2018-01-15
    • 1970-01-01
    相关资源
    最近更新 更多