1

やあみんな、

jQuery UI Datepicker に大きな問題があります。

「From Date」と「To Date」の 2 つの入力フィールドがあります。開始日を選択すると、「終了日」ピッカーに 5 日間のみの日付範囲が表示されます。

「Russ Cam」jQuery datepickerのコードを使用しました-2つの入力/テキストボックスと範囲の制限

それは完璧に機能しました。

今私の問題:

INLINE である 2 番目のカレンダーがあります。これは、入力フィールドがないことを意味します。ページに直接表示され、「開始日」と「終了日」があります。このカレンダーでは、スクリプトは機能しません! 「開始日」および「終了日」のすべてのフィールドが利用可能です。日付範囲の制限などはありません。

ここで何が問題なのですか?誰かが私にヒントを与えることができますか?

4

1 に答える 1

0

セプティック:

はい、確かに:

ここに私のHTMLコードがあります:

                <div class="calendars">
                    <div class="left">
                        <span class="head">Anreise</span>
                        <div id="navfrom"></div>
                    </div>

                    <div class="right">
                        <span class="head">Abreise</span>
                        <div id="navto"></div>
                    </div>
                </div> 

私のJSコード:

    $('#navfrom, #navto').datepicker(
    {
        beforeShow: customRangeInline,
        dateFormat: "dd.mm.y",
        firstDay: 1, 
        changeFirstDay: false
    });

そして CustomRangeInline 関数:

function customRangeInline(input) 
{ 
        var min = new Date(2008, 11 - 1, 1);
        var dateMin = min;
        var dateMax = null;
        var dayRange = 5;

        if (input.id == "navfrom") 
        {
            if ($("#navto").datepicker("getDate") != null)
            {                
                dateMin = $("#navto").datepicker("getDate");
                dateMin.setDate(dateMin.getDate());
                if (dateMin < min)
                {
                    dateMin = min;
                }
             }                   
        }
        else if (input.id == "navto")
        {
                dateMax = new Date(); //Set this to your absolute maximum date

                if ($("#navfrom").datepicker("getDate") != null)
                {
                        dateMin = $("#navfrom").datepicker("getDate");
                        var rangeMax = new Date(dateMin.getFullYear(), dateMin.getMonth(), dateMin.getDate() + dayRange);

                        if(rangeMax > dateMax)
                        {
                            dateMax = rangeMax; 
                        }
                }
        }
        return {
                minDate: dateMin, 
                maxDate: dateMax
        }; 
}
于 2010-05-08T17:20:12.473 に答える