【问题标题】:jquery datepicker onChangeMonthYearjquery datepicker onChangeMonthYear
【发布时间】:2010-11-08 16:49:40
【问题描述】:

我在我的应用程序中使用 jquery ui datepicker。 我创建了一个内联日期选择器。 我遇到了onChangeMonthYear 的问题。我已将示例简化为最低限度。

点击“上一个”或“下一个”,日历应该:-

  1. 相应地转到上/下个月。
  2. 将该月的第一天设置为当前选定的日期。
  3. 提醒该日期

问题在于#2。

我正在使用setDate 来执行此操作,它以无限递归结束。因为,我在 onChangeMonthYear 中调用 setDate。 setDate 也在内部触发 onChangeMonthYear。

点击 prev/next 时如何实现这三件事。

【问题讨论】:

    标签: jquery-ui datepicker uidatepicker jquery-ui-datepicker


    【解决方案1】:

    尝试设置一个可以在事件处理程序中查询的标志,以防止无限循环:

    var changingDate = false;
    $('.selector').datepicker({
        onChangeMonthYear: function(year, month, inst) {
            if (changingDate) {
                return;
            }
            changingDate = true;
            // your setDate() call here
            changingDate = false;
        }
    });
    

    【讨论】:

      【解决方案2】:

      无限递归意味着您通知的月份不正确。
      确保你从month减1

      【讨论】:

      • 不正确。这是因为 onChangeMonthYear() 也会触发任何更改。在这种情况下,很可能是 setDate() 引起的。
      【解决方案3】:
      onChangeMonthYear: function(year, month, inst){
          $(this).datepicker( "setDate", new Date(year, month-1, 1) );
      }
      

      【讨论】:

        猜你喜欢
        • 2021-06-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多