1

http://trentrichardson.com/examples/timepicker/の日時ピッカーを使用して、ユーザーが特定の日付をクリックしたときの最大時間を変更する必要があります。これまでのところ、私のコードはAJAX呼び出しを行い、その日のクリックごとに最大時間を取得します(最大時間は毎日異なり、データベースに存在します)。

更新された maxhour が表示されるようにビューを更新しようとしましたが、フォームは「janaury 0」にリセットされ、フォームを閉じてクリックすると、最後のリクエストの maxhour が選択された日に適用されます。

フォームをリセットするには、オプション メソッドを使用しましたが、機能しませんでした。そのためonselect、datetimepicker の古いプロパティを破棄し、すべてを作り直してプロパティを割り当てるすべてのイベントで呼び出されるメソッドがあります。

ビューを更新するはずだったdatetpickerのrefreshメソッドを使用してみました。

最初の割り当て

$("#startDate").datetimepicker({
    onSelect: function (date) {
        manipulate(date);
    },
    timeFormat: 'hh:mm:ss tt',
    hourMin: 8,
    hourMax: endHour,
    showSecond: false,
    stepMinute: 15,
    minuteGrid: 5,
    addSliderAccess: true,
    sliderAccessArgs: {
        touchonly: false
    },
    showOn: "button",
    buttonText: "Select a date to check out equipment(s).",
    buttonImage: "../images/calendar.gif",
    buttonImageOnly: true,
    defaultDate: "+0",
    changeMonth: false,
    numberOfMonths: 2,
    minDate: 0,
    maxDate: '+5w',
    beforeShowDay: unavailable,
    ampm: true
});

function manipulate(date) {
    var sendDate = date.toString();
    jQuery.ajax({
        url: "endtime.php",
        data: {
            day: sendDate
        },
        type: "POST",
        success: function (XML) {
            var answer = jQuery("data", XML).text();
            var time = answer.split(":");
            var timetemp = sendDate.split(" ");
            var timenew = timetemp[0] + " " + answer;
            //$("#startDate").datetimepicker.( "option" ,hourMax ,time[0]); this is one of the first approach
            $("#startDate").datetimepicker("destroy");
            //$("#startDate").datetimepicker("refresh");
            var DateOptions = {
                onSelect: function (date) {
                    manipulate(date);
                    //$("#startDate").datetimepicker("refresh");
                    //datepicker._gotoToday('#startDate');
                },
                timeFormat: 'hh:mm:ss tt',
                hourMin: 8,
                hourMax: time[0],
                showSecond: false,
                stepMinute: 15,
                minuteGrid: 5,
                addSliderAccess: true,
                sliderAccessArgs: {
                    touchonly: false
                },
                showOn: "button",
                buttonText: "Select a date to check out equipment(s).",
                buttonImage: "../images/calendar.gif",
                buttonImageOnly: true,
                defaultDate: "+0",
                changeMonth: false,
                numberOfMonths: 2,
                minDate: 0,
                maxDate: '+5w',
                beforeShowDay: unavailable,
                ampm: true,
                setDate: date
            }
            $("#startDate").datetimepicker(DateOptions);
        }
    })
}

どんな助けでも大歓迎です。

4

0 に答える 0