为DatetimepickerBundle设置一个回调

Setting up a callback for the DatetimepickerBundle

本文关键字:一个 回调 DatetimepickerBundle 设置      更新时间:2023-09-26

我在Symfony项目中使用了DatetimepickerBundle。在一个表单中,我有两个日期字段,startend。我希望结束字段在开始字段更改时自动更新,这样用户就不必再次选择日期,因为大多数事件将在同一天开始和结束。

Bundle基于bootstrap-datetimepicker,并为每个字段生成以下javascript:

jQuery(document).ready(function($) {
    $field = $('#app_bundle_event_start');
    $field.datetimepicker({"formatter":"js","format":"dd.mm.yyyy hh:ii","autoclose":true,"language":"de"});  
});

我在模板中添加了以下代码,但它没有做任何事情。

jQuery(document).ready(function($) {
    $('#app_bundle_event_start').datetimepicker().on('changeDate', function(ev){
        $('#app_bundle_event_end').datetimepicker('update', ev.date);
    });
}

如果我没有将它包装在文档就绪的回调中,结束日期将被更新,但在开始日期字段中,datetimepicker将被重新初始化并丢失其所有选项。

我如何添加这个事件回调到一个已经初始化的日期时间选择器?

我相信,虽然我不是100%确定,.on()实际上属于标准的jQuery事件。基本上,您不需要再次调用datepicker()

因此,要将回调附加到已经初始化的Datepicker,只需执行:

$('#app_bundle_event_start').on('changeDate', function(ev){
    $('#app_bundle_event_end').datetimepicker('update', ev.date);
});

这是你想要达到的目标吗?