【问题标题】:jQuery UI datepicker 'previous month' doesn't workjQuery UI datepicker'上个月'不起作用
【发布时间】:2017-09-17 09:41:36
【问题描述】:

我在我的站点中实现了 jQuery UI 日期选择器,并注意到我无法单击“返回”到上个月。

我的 HTML:

<input type='text' id='date'>

初始化脚本:

$( '#date' ).datepicker( {
    numberOfMonths: 4,
    showCurrentAtPos: 1,
    showButtonPanel: true
} );

我创建了一个带有 jquery-ui-1.12.1 加载的jsFiddle,它复制了上述问题。我现在解决了我切换到 jquery-ui-1.9 的问题,但我希望能够使用最新版本。有什么办法可以解决这个问题吗?

我进行了一些广泛的调试,“prev”按钮事件正在启动,它似乎没有使用正确的数据调用更新函数,导致日期选择器首先更新为与之前显示的同一个月点击。

我开始认为这是一个错误,如果我将 showCurrentAtPos 设置为 0 而不是 1,则日期选择器会按预期工作 (jsFiddle)

【问题讨论】:

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


    【解决方案1】:

    能够使用 jQuery 1.12.4 和 UI 1.12.1 复制该问题,匹配 Demo 版本:http://jqueryui.com/datepicker/。工作测试:https://jsfiddle.net/Twisty/wkpvbp5u/

    如果我注释掉 showCurrentAtPos,它会按预期工作。

    JavaScript

    $(function() {
      $('#date').datepicker({
        numberOfMonths: 4,
        //showCurrentAtPos: 1,
        showButtonPanel: true
      });
    });
    

    因此问题可能出在此选项的行为上。我也通过将值设置为 -1 作为测试来打破它。下一步按钮失效。

    发现:https://bugs.jqueryui.com/ticket/15129 所以看起来您可以使用 jQuery UI 1.11.4 但不能使用 1.12.1。可能是一个修复:https://github.com/jquery/jquery-ui/commit/17404ced478a235651513fa7bef3473ef1b039e8

    希望对您有所帮助。

    【讨论】:

    • 我应用了建议的修复(在第 991 行添加 this._adjustInstDate( inst, offset, period );),它现在就像一个魅力!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-12-03
    • 1970-01-01
    • 1970-01-01
    • 2019-11-10
    • 1970-01-01
    • 2015-10-31
    • 1970-01-01
    相关资源
    最近更新 更多