【问题标题】:Bootstrap datepicker update method causing issues引导日期选择器更新方法导致问题
【发布时间】:2014-08-08 15:30:27
【问题描述】:

我正在尝试使用 bootstrap datepicker from eternicode,它是原始 eyecon 选择器的一个分支。

我添加了jsfiddle example of what I'm trying to do。

在小提琴中所有 js 的底部是我初始化日期选择器的地方。 我添加了一个setTimout,所以我可以模拟动态更改日期选择器的日期。 我已经阅读了您在执行setDate 之后需要调用datepicker('update'); 的位置,以便更新选择器UI。

当我这样做时,它会导致一些问题。如果您单击输入字段以显示日历,日历将显示突出显示的日期作为今天的日期,而不是我更新它的新日期。

当您关闭选择器时,它会将今天的日期附加到输入值的末尾。 这不是正常行为。我要做的就是设置一个新日期并让它同时更新 UI 选择器。

HTML

<div class="input-append date" id="date-picker">
    <input class="span6" size="16" type="text">
    <span class="add-on"><i class=""></i></span>
</div>
var picker = $('#date-picker').datepicker({format:'M d, yyyy' });

var d = new Date();
d.setDate(d.getDate() + 1);

setTimeout(function(){
  picker.datepicker("setDate", d).datepicker('update');
},3000);

【问题讨论】:

  • ericB,您应该更新您的示例以使用此fiddle,它通过将外部代码移动到外部资源而不是保持内联来清理外部代码。

标签: jquery twitter-bootstrap bootstrap-datepicker


【解决方案1】:

似乎您只能以以下格式传递日期,以保持日期选择器正确显示日期:

picker.datepicker('update', new Date(d.getFullYear(), d.getMonth(), d.getDate()));

d 是您想要的日期。

【讨论】:

  • +1,看起来它解决了它。这是一个simplified fiddle,上面有这个答案和外部链接的资源
  • 感谢 Miron,但我在我的 jsfiddle 中尝试过,就像我上面提供的那样,它仍然不能正确更新 UI。 picker.datepicker('update', new Date(d.getFullYear(), d.getMonth(), d.getDate()+1));
  • 啊,我说得太早了。所以我还需要取出 setDate 并使用更新来代替。 picker.datepicker('更新', 日期);
  • 当然,没有datepicker("setDate", d) 它可以工作;)
  • 哇,好日子浪费了。非常感谢您让我知道它只允许年份、月份和日期。我真的认为文​​档应该包含更新方法。谢谢谢谢。
【解决方案2】:

关闭你的&lt;input class="span6" size="16" type="text" / &gt; 它似乎可以工作

也许看看 input-append 的类

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-30
    • 2017-07-02
    • 2015-06-11
    相关资源
    最近更新 更多