2
$('#altdate').datetimepicker({
        timeFormat: 'hh:mm:ss',
        dateFormat: 'yy-mm-dd',
        altField: "#Event_datetime",
        altFormat: "yy-mm-dd",
        altTimeFormat: 'hh:mm:ss',
        altFieldTimeOnly: false,
        onClose: function( selectedDate ) {
            //alert(selectedDate);
            $( "#altenddate" ).datetimepicker( "option", "minDate", selectedDate );
            if (selectedDate < ($.datepicker.formatDate('yy-mm-dd', new Date())) ) {
                start_in_past = true;
            }
        }
    });

$('#altenddate').datetimepicker({
        timeFormat: 'hh:mm:ss',
        dateFormat: 'yy-mm-dd',
        altField: "#Event_enddatetime",
        altFormat: "yy-mm-dd",
        altTimeFormat: 'hh:mm:ss',
        altFieldTimeOnly: false,
        onClose: function( selectedDate ) {
            //alert(selectedDate);
            $( "#altdate" ).datetimepicker( "option", "maxDate", selectedDate );
        }
    });

datetimepickerフィールドを離れると、#Event_datetimeフィールドに値「2012-12-2313:00:00」が正しく入力されます。ただし、終了日を閉じると、行

$( "#altdate" ).datetimepicker( "option", "maxDate", selectedDate );

フィールドに「2012-12-23」を設定するだけです!オプションとして「maxDateTime」を使用することも機能せず、を取得しmaxDateTime.getFullYear is not a functionます。

クライアントの要求に応じて完全な文字列でmaxDate(Time)を設定する方法:yy-mm-dd hh:mm:ss

4

2 に答える 2

3

したがって、問題は、「maxDate」オプションを設定すると、実際の非表示フィールド#Event_datetimeが時間なしでリセットされることです。理由はわかりません。

そこで、maxDateを設定するために呼び出す前に、一時的に#Event_datetime変数を保存して、再度リセットすることで解決しました...

var current = $('#Event_datetime').val();
$( "#altdate" ).datetimepicker( "option", "maxDate", selectedDate );
$('#Event_datetime').val(current);
于 2012-11-23T20:04:38.547 に答える
1

私はあなたと同じ問題を抱えていましたが、altフィールドを使用していませんでした。あなたのソリューションも私のために機能しましたが、私はそれを少し異なってコーディングしなければなりませんでした。

var current = $("#startDate").datetimepicker("getDate");
$("#startDate").datetimepicker( "option", "maxDate", selectedDate );
$("#startDate").datetimepicker( "setDate", current);

(これをコメントとして投稿できたと思いますが、コードサンプルをフォーマットする必要がありました。)

于 2013-03-27T12:33:16.867 に答える