3

私はjQueryUIdatepickerに優れたTrentRichardsondatetimepickerアドオンを使用しています。

各行にピッカーの2つのインスタンスがあるデータの行があります。1つはプロセスの開始時間用で、もう1つはプロセスの終了時間用です。ユーザーが一方をクリックすると、もう一方のボックスの値に基づいて最小または最大日時要素をリセットしたいと思います。つまり、開始時間に基づいて終了時間を制限し、終了時間に基づいて開始時間を制限します(ユーザーが終了後に開始したり、開始前に終了したりできないようにするため)。

次のようにdatetimepickerを呼び出します。

$('.c_inbox_date').datetimepicker({
    hourGrid: 12,
    minuteGrid: 30,
    timeFormat: 'HHmm',
    showTimezone: false,
})

これが私がその場で最小時間と最大時間をリセットするために取り組んでいる関数です:

$('.c_inbox_date').click(function() {
    var this_col = $(this).closest('td').parent().children().index($(this).closest('td'));  
    if (this_col == 3) {
        var stop_time = $(this).closest('td').next('td').children('input').val();       
        $(this).datetimepicker({
            maxDateTime: stop_time
        })              
    } else {    
        var start_time = $(this).closest('td').prev('td').children('input').val();
        $(this).datetimepicker({
            minDateTime: new Date(start_time)
        })              
    }
})

関数のアラートボックスは、start_time変数とstop_time変数に正しい値が含まれていることを確認します。ご覧のとおり、「new Date」を使用して、値が実際に日付オブジェクトであることを確認しようとしましたが、それも機能しませんでした。

なぜこれが機能しないのか誰か教えてもらえますか?datetimepickerは、この種のオンザフライ変更を許可しますか?または、構文が混乱していますか?いつものように、どんな助けでも大歓迎です。

4

2 に答える 2

11

それらの両方を使用してください。

$('input')
  .datepicker('option', 'maxDate', new Date())
  .datetimepicker('option', 'maxDateTime', new Date());

リバースエンジニアリングの喜び...

于 2013-11-19T18:33:32.540 に答える
0

通常の日付ピッカーだけで日付を元に戻すときは、次の構文を使用します。

$( this ).datepicker( "option", "maxDate", new Date(your_date) );
//your_date is a string in the format: YYYY,MM,DD

あなたの場合、あなたは以下を使うことができると思います:

$( this ).datetimepicker( "option", "maxDateTime", new Date(your_date) );
//your_date is a string in the format: YYYY,MM,DD,HH,II
于 2013-01-16T15:08:05.730 に答える