1

私はMVCアプリケーションを持っています。私のページには2つの日時ピッカーが含まれています.開始日と終了日.私の要件は、誰かが開始日を選択すると、終了日は開始日+10日として計算される必要があります.

また、1 つの条件として、終了日は開始日より前であってはなりません。どうすれば可能ですか?

$(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コードを使用しましたが、日時ピッカーを選択すると、常に以前に選択された日付が表示されます.日時ピッカーを選択するときに選択した日付を取得するにはどうすればよいですか?

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 に答える