【问题标题】:Why arrows in jQuery UI Datepicker make wrong change of the date?为什么 jQuery UI Datepicker 中的箭头会错误地更改日期?
【发布时间】:2011-07-14 06:22:54
【问题描述】:

我有这样的标准 jQuery UI 日期选择器:

$('.text_input').live('focus', function () {
  $(this).datepicker('destroy').datepicker({dateFormat: 'dd.mm.yy'});
});

输入中已经是日期,例如2010 年 7 月 14 日。当我单击输入时,会出现日期选择器,它会显示在输入中填写的选定日期。但是,当我尝试使用日期选择器顶部的左右箭头进行导航时,会发生奇怪的事情 - 它会将日期选择器中的日期更改为 1899 年 11 月或 1900 年 1 月,具体取决于我单击哪个箭头。

有人知道为什么会这样吗?以及如何解决?我正在使用 jQuery UI 1.8.14 和 jQuery 1.4.2。

【问题讨论】:

  • 你能做一个快速的jsFiddle吗?

标签: jquery jquery-ui datepicker


【解决方案1】:

不要破坏它。 :)

$('.text_input').live('focus', function() {
    $(this).datepicker({
        dateFormat: 'dd.mm.yy'
    });
});

【讨论】:

  • 谢谢,这很容易 ;-) 我认为当我使用 live() 时,我应该销毁以前的日期选择器,但您的建议非常有效。
【解决方案2】:

您无需在每次输入获得焦点时都初始化/创建/分配日期选择器。你可以在 dom 准备好时分配它。

$(document).ready(function(){
    $('.text_input').datepicker({ dateFormat: 'dd.mm.yy' });
});

【讨论】:

  • 我的场景需要使用 live()。
猜你喜欢
  • 2017-10-06
  • 1970-01-01
  • 2016-03-11
  • 1970-01-01
  • 2012-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多