【问题标题】:Datetimepicker: default value only set every other timeDatetimepicker:默认值仅每隔一次设置一次
【发布时间】:2015-08-06 09:47:17
【问题描述】:

解决了the previous defaultDate issue之后,我有了一个新的。 JavaScript 代码如下:

$(function () {
    $('#datepicker').datetimepicker({
        useCurrent: false,
        maxDate: moment().toDate(),
        locale: 'de',
        defaultDate: moment().toDate(),
        format: 'DD.MM.YYYY'
    });
});

当我访问该页面时,未设置默认日期。当我重新加载它时,会设置默认日期,并且无论我做什么都保持设置,直到我浏览到另一个页面然后返回表单;然后,默认日期通常未设置,尽管有时会设置。未设置时,日期选择器不起作用(单击输入字段没有效果),并且控制台显示错误消息:

Uncaught TypeError: defaultDate() 传递的日期无效,根据 组件设置验证

On JSFiddle,行为就更奇怪了。首次加载时,通常不设置日期。在进一步重新加载时,它会被设置,除了有时,如果你经常点击 Run,它不是。对我来说这似乎是一个错误,但由于我并不真正了解 JavaScript,所以我想我会问...

【问题讨论】:

    标签: jquery twitter-bootstrap-3 bootstrap-datetimepicker


    【解决方案1】:

    这个问题是由于限制maxDatedefaultDate确切相同的日期。此错误是零星的原因是因为处理发生时日期之间偶尔会有几毫秒的延迟。当此延迟不存在时,您会收到错误消息。

    要修复它,您可以手动将一秒添加到 maxDate 以弥补任何处理时间差异。试试这个:

    $(function () {
        var maxDate = moment().add(1, 'seconds').toDate();
        var defaultDate = moment().toDate();
    
        $('#datepicker').datetimepicker({
            useCurrent: false,
            maxDate: maxDate,
            locale: 'de',
            defaultDate: defaultDate,
            format: 'DD.MM.YYYY'
        });
    });
    

    Updated fiddle

    【讨论】:

    • 谢谢,这对我有用。我提交了an issue on GitHub 一个可能的解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多