【问题标题】:changing minDate option in JQuery DatePicker not working更改 JQuery DatePicker 中的 minDate 选项不起作用
【发布时间】:2010-10-25 05:46:12
【问题描述】:

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

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

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

【问题讨论】:

  • 我想动态更改 minDate - 基于另一个选择。为此,我必须先 .datepicker("destroy") 并重新实例化一个新的(使用新选项)。

标签: jquery-ui datepicker


【解决方案1】:

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

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

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

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

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

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

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

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

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

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

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

jQuery UI docs for minDate

【讨论】:

  • 这个答案对我有帮助,非常清楚和具体到 OP 的问题,这应该是最上面的一个
【解决方案2】:

德拉科,

你可以这样做:

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

【讨论】:

    【解决方案3】:

    使用 minDate 作为字符串:

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

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

    【讨论】:

      【解决方案4】:

      动态更改 minDate

      .datepicker("destroy")
      

      例如

      <script>
          $(function() {
            $( "#datepicker" ).datepicker("destroy");
            $( "#datepicker" ).datepicker();
          });
      </script>
       
      <p>Date: <input type="text" id="datepicker" /></p>
      

      【讨论】:

        【解决方案5】:

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

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

        【讨论】:

          【解决方案6】:

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

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

          【讨论】:

            【解决方案7】:

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

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2017-11-07
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2013-04-22
              相关资源
              最近更新 更多