web-dev-qa-db-ja.com

JQuery DatePickerのminDateオプションの変更が機能しない

日付ピッカーインスタンスを次のように宣言しました。

    $("#datePickerId").datepicker(
    { dateFormat: 'DD, d MM yy',
      minDate: 0,
      showOn: 'button',
      buttonImage: '../../images/calendar.gif',
      buttonImageOnly: true,
      hideIfNoPrevNext: true
    }
   );

私はこれをminDateオプションに変更したいので、これを行います:

$('#datePickerId').datepicker('option', 'minDate', 3);

しかし、何も起こりません。他に何かするつもりだったのですか?他に考えられる原因は何ですか?

31
Draco

ドラコ、

次のようにできます:

$("#datePickerId").datepicker(
    { dateFormat: 'DD, d MM yy',
      minDate: new Date(2009, 10 - 1, 25), // it will set minDate from 25 October 2009
      showOn: 'button',
      buttonImage: '../../images/calendar.gif',
      buttonImageOnly: true,
      hideIfNoPrevNext: true
    }
   );

月の後に-1を書くことを忘れないでください(例:6月は-> 6 -1)

25
Marcin

MinDateを動的に変更する方法(初期化後)

上記の回答は、initでデフォルトのminDateを設定する方法を示していますが、実際にはminDateを動的に変更する方法が問題でした。以下では、デフォルトのminDateを設定する方法も明確にします。

元の質問で間違っていたのは、設定するminDate値が文字列である必要があるということだけです(引用符を忘れないでください)。

$('#datePickerId').datepicker('option', 'minDate', '3');

minDateは日付オブジェクトも受け入れます。一般的な使用法は、計算しようとしている終了日を取得することです。これにより、次のようなことが便利になります。

$('#datePickerId').datepicker(
    'option', 'minDate', new Date($(".datePop.start").val())
);

デフォルトのminDateを設定する方法(initで)

ベストプラクティスとしてこれに答えるだけです。 minDateオプションは次のいずれかを想定しています:

  1. 現在のdateFormatの文字列OR
  2. 今日からの日数(例:+7)または
  3. 値と期間の文字列( 'y'は年、 'm'は月、 'w'は週、 'd'は日、たとえば '-1y -1m')

文字列を「0」に設定する@bogartは、上記のオプション2を満たすソリューションです。

$('#datePickerId').datepicker('minDate': '3');

minDateのjQuery UIドキュメント

61
Duncanmoo

文字列としてminDateを使用します。

$('#datePickerId').datepicker({minDate: '0'});

これにより、今日は選択可能な最小日付として設定されます。

23
Nikola K.

MinDateを動的に変更します

.datepicker("destroy")

たとえば

<script>
    $(function() {
      $( "#datepicker" ).datepicker("destroy");
      $( "#datepicker" ).datepicker();
    });
  </script>

  <p>Date: <input type="text" id="datepicker" /></p>

現在のインスタンスを破棄する必要はなく、リフレッシュするだけです。

$('#datepicker')
    .datepicker('option', 'minDate', new Date)
    .datepicker('refresh');
2
David

2つの日付選択フィールドfield1とfield2があるとします。 field2の日付はfield1に依存します

$('#field2').datepicker();
$('#field1').datepicker({
  onSelect: function(dateText, inst) {
    $('#field2').val("");
    $('#field2').datepicker("option", "minDate", new Date(dateText));
  }
});
2
SKR

月は0から始まります。0= 1月、1 = 2月、2 = 3月、...、11 = 12月。

1
koala