jquery datepicker onChangeMonthYear

时间:2009-07-07 13:11:57

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

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

点击“prev”或“next”,日历应该: -

  1. 相应地转到上一个/下个月。
  2. 将该月的第一天设为当前所选日期。
  3. 提醒那个日期
  4. 问题在于#2。

    我正在使用setDate来做到这一点,它最终会以无限递归结束。因为,我在onChangeMonthYear中调用setDate。并且setDate也会在内部触发onChangeMonthYear。

    如果点击上一个/下一个,我怎样才能实现这三件事。

3 个答案:

答案 0 :(得分:7)

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

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

答案 1 :(得分:1)

无限递归意味着您通知错误的月份 确保从month

减少1

答案 2 :(得分:0)

onChangeMonthYear: function(year, month, inst){
    $(this).datepicker( "setDate", new Date(year, month-1, 1) );
}