如果页面加载时输入框中存在值,datetimepicker 会从输入框中擦除该值。

10

我正在使用Bootstrap 4的日期时间选择器 https://tempusdominus.github.io/bootstrap-4/

如果输入为空,则插件能够正常工作。然而,我有一个编辑表单,它已经有一个值,但日期选择器在页面加载时删除了该值。

<div class="container">
    <div class="row">
        <div class='col-sm-6'>
            <div class="form-group">
               <input class="form-control datetimepicker-input" data-target="#Entry_EntryDate" data-toggle="datetimepicker" data-val="true" data-val-date="The field Event Date must be a date." data-val-required="The Event Date field is required." id="Entry_EntryDate"  type="datetime" value="2017-10-25 10:17 AM" />
            </div>
        </div>
    </div>
</div>

以及默认的 JS

 $(function() {
         $('#Entry_EntryDate').datetimepicker();
 });

这里是JsFiddle

我复制了推荐的jsfiddle,所以我确定我拥有所有正确所需的依赖。

我尝试更改区域设置、更改格式,但是没有运气。

1个回答

22

当您初始化datetimepicker时,默认情况下会清除值,因此为了保留该值,您需要记住该值 $('#Entry_EntryDate').val() 将其转换为日期对象,并在初始化时传递给timepicker:

以及默认的js

 $(function() {
     var date = moment($('#Entry_EntryDate').val(), 'YYYY-MM-DD hh:mm a').toDate();
     $('#Entry_EntryDate').datetimepicker({date:date});
 });

谢谢!只是想说,我尝试将它简单地设置为我的datetime.datetime对象,但那样不起作用!正如上面的代码所述,实际上需要将您的值更改为'moment'日期对象非常必要! - Bob de Graaf
$('#Entry_EntryDate').val() 必须是 momentjs 可以解析的格式。 - gogaz
1
应该添加到文档中。不是那么明显 :/ - Tsounabe
1
这里的挑战是,如果您在datetimepicker中指定日期格式,它就不起作用了。 - Jim Richards

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接