32

我已经声明了一个日期选择器实例,如下所示:

    $("#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);

但什么也没有发生。我应该做其他事情吗?还有哪些其他可能的原因?

4

7 回答 7

65

如何动态更改 minDate(初始化后)

上面的答案解决了如何在初始化时设置默认的minDate,但问题实际上是如何动态地改变minDate,下面我还澄清了如何设置默认的minDate。

原始问题的所有错误在于设置的 minDate 值应该是一个字符串(不要忘记引号):

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

minDate 也接受一个日期对象,一个常见的用途是有一个你试图计算的结束日期,所以这样的东西可能很有用:

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

如何设置默认的 minDate(在初始化时)

只是回答这个以获得最佳实践;minDate 选项需要以下之一:

  1. 当前 dateFormat 中的字符串或
  2. 从今天开始的天数(例如 +7)或
  3. 值和句点字符串('y' 表示年,'m' 表示月,'w' 表示周,'d' 表示天,例如 '-1y -1m')

@bogart 将字符串设置为“0”是一种解决方案,因为它满足上面的选项 2

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

minDate 的 jQuery UI 文档

于 2012-06-21T07:46:57.987 回答
24

德拉科,

你可以这样做:

$("#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 -1)

于 2009-06-20T22:38:52.200 回答
23

使用 minDate 作为字符串:

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

这会将今天设置为最小可选日期。

于 2009-06-26T07:15:18.163 回答
5

动态更改 minDate

.datepicker("destroy")

例如

<script>
    $(function() {
      $( "#datepicker" ).datepicker("destroy");
      $( "#datepicker" ).datepicker();
    });
</script>
 
<p>Date: <input type="text" id="datepicker" /></p>
于 2013-10-23T11:34:08.793 回答
2

假设我们有两个日期选择字段 field1 和 field2。field2 日期取决于 field1

$('#field2').datepicker();
$('#field1').datepicker({
  onSelect: function(dateText, inst) {
    $('#field2').val("");
    $('#field2').datepicker("option", "minDate", new Date(dateText));
  }
});
于 2012-08-29T12:10:58.167 回答
2

无需销毁当前实例,只需刷新即可。

$('#datepicker')
    .datepicker('option', 'minDate', new Date)
    .datepicker('refresh');
于 2016-06-23T12:19:12.077 回答
1

月份从 0 开始。0 = 一月,1 = 二月,2 = 三月,...,11 = 十二月。

于 2010-09-20T08:46:49.197 回答