31

jQuery Datepicker で特定の問題が発生しています。日付範囲を簡単に追加できますが、ユーザーが選択したイベントによって選択可能な範囲を変更したいです。

したがって、イベント #1 を選択すると、イベント #1 の日付範囲からのみ日付を選択できます。

ユーザーが新しいイベントを選択するたびに呼び出される単純な小さな関数を作成しましたが、最初に設定された minDate/maxDate 値のみが表示されます。

function datepicker(startDate, endDate) {
  $( "#date" ).datepicker({
    inline: true,
    minDate: new Date(startDate),
    maxDate: new Date(endDate),
    dateFormat: 'dd/mm/yy' 
  });
}

上記の関数を再度呼び出す$('#date').datepicker('remove');前に呼び出して、正しい日付で新しいインスタンスが作成されるかどうかを確認しましたが、機能していないようです。

開発者ツールを使用してすべてのデータをチェックしましたが、すべてが正しく呼び出されて渡されています。これを希望どおりに機能させるためにできることはありますか?

4

5 に答える 5

72

いくつかのオプションがあります...

destroy()1)そうではないメソッドを呼び出す必要がありremove()ます...

$('#date').datepicker('destroy');

次に、メソッドを呼び出してdatepickerオブジェクトを再作成します。

object2)既存のビアのプロパティを更新できます

$('#date').datepicker('option', 'minDate', new Date(startDate));
$('#date').datepicker('option', 'maxDate', new Date(endDate));

また...

$('#date').datepicker('option', { minDate: new Date(startDate),
                                  maxDate: new Date(endDate) });
于 2013-04-28T21:15:48.127 に答える
7
$(document).ready(function() {
$("#aDateFrom").datepicker({
    onSelect: function() {
        //- get date from another datepicker without language dependencies
        var minDate = $('#aDateFrom').datepicker('getDate');
        $("#aDateTo").datepicker("change", { minDate: minDate });
    }
});

$("#aDateTo").datepicker({
    onSelect: function() {
        //- get date from another datepicker without language dependencies
        var maxDate = $('#aDateTo').datepicker('getDate');
        $("#aDateFrom").datepicker("change", { maxDate: maxDate });
    }
});
});
于 2015-06-09T17:56:26.350 に答える
0

あなたが Datepicker を使用していることは知っていますが、私のように HTML5 入力日付を使用しているだけの人のために、同じことができる例があります: JSFiddle Link

$('#start_date').change(function(){
  var start_date = $(this).val();
  $('#end_date').prop({
    min: start_date
  });
});


/*  prop() method works since jquery 1.6, if you are using a previus version, you can use attr() method.*/
于 2017-04-04T03:48:58.393 に答える