【问题标题】:Bug in jQuery UI datepicker: getDate returns incorrect datejQuery UI datepicker 中的错误:getDate 返回不正确的日期
【发布时间】:2015-12-01 22:16:28
【问题描述】:

我有一个涉及 jQuery UI 日期选择器的非常简单的代码:

$('.date-picker').datepicker({
      dateFormat: 'MM yy',
      changeMonth: true,
      changeYear: true,
      showButtonPanel: true,
 })
 .change(function() {
      var date = $(this).datepicker('getDate');
      $('#dateShow').val(date);
 });

问题在于,在change 处理程序中,每次我选择另一个月份或年份时,我总是得到今天的日期,而不是我在日历中选择的日期。这里是jsFiddle。

有人知道我做错了什么吗?这样一个基本用例怎么会导致 datepicker 的 getDate 返回不正确的值?

更新:简化了代码示例,并相应地重新表述了问题。

【问题讨论】:

    标签: javascript jquery jquery-ui datepicker


    【解决方案1】:

    这个问题似乎存在一个错误 Bug 8009, Bug 8159

    在新版本中似乎没有修复。解决此问题的最佳方法是使用$(this).val() 而不是$(this).datepicker('getDate')。

    这是一个工作示例:http://jsfiddle.net/qk5qj33u/9/

    【讨论】:

    • 如果我理解正确,这些问题都与您通过setDate 设置无效日期或什至为空的日期有关。相反,在我的情况下它总是正确的。还是我错过了什么?
    • 对于错误 8159,是的,但错误 8009 与您的问题相同。
    • 8009:Datepicker: getDate returns the incorrect date **when typing invalid value**。我的:$(this).datepicker('setDate', new Date(year, month, 1)).change();。能否请您指出与我的案子相符的地方?
    • 与SetDate无关。它工作正常。这是关于您何时尝试通过“getDate”提取日期。这是该错误的文本:我正在使用 datepicker 演示。当我在输入字段中输入“09012013”​​(然后单击一些空格以关闭日历窗口)时,它会根据 getDate 将日期设置为今天。 getDate 不应该返回 2013 年 9 月 12 日吗?
    • 我已经更新了jsFiddle。在这个版本中,我根本不使用setDate 和onClose。当我通过单击日历中的某一天来选择新日期时,getDate 返回自第二次尝试以来我刚刚选择的日期,但是,无论选择如何,它都会在今天返回。跨度>
    猜你喜欢
    • 2018-05-03
    • 2019-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多