【问题标题】:jQuery datetimepicker destroy not workingjQuery datetimepicker破坏不起作用
【发布时间】:2015-04-02 08:19:38
【问题描述】:

我正在尝试在更改另一个日期时间选择器时销毁它。

这是我的场景-

我的应用程序中有两个或多个日期时间选择器。例如,如果我更改第一个 datetimepicker,那么它的日期设置为 .next() datetimepicker 作为日期的最小设置,因此对于所有下一个 datetimepicker。

所以这是一个升序日期顺序,前一个元素的日期没有大于下一个元素。

这是我尝试过的-

$('.datetimepicker').datetimepicker(); //initialized datetimepicker for all elements.

$('.datetimepicker').change(function(){
    $(this).next('input.datetimepicker').datetimepicker({
       minDate:$(this).val()
    });
});

我的问题很清楚,它从不设置下一个.datetimepicker 的最短日期。

例如,如果第一个元素的值为02 Feb 2015,那么下一个元素的最小值也相同。

在此,我尝试先销毁下一个元素,然后再应用相同的元素-

$('.datetimepicker').change(function(){
   $(this).next('input.datetimepicker').destroy();

   $(this).next('input.datetimepicker').datetimepicker({
       minDate:$(this).val()
   });
});

但它总是使用默认功能调用。

我正在使用这个参考 - https://github.com/Eonasdan/bootstrap-datetimepicker

【问题讨论】:

    标签: jquery twitter-bootstrap datepicker datetimepicker


    【解决方案1】:

    您不需要销毁对象。您可以在更改前一个元素时设置 minDate。

    HTML

    <input type="text" class="form-control datetimepicker" id="datetimepicker1" />
    <input type="text" class="form-control datetimepicker" id="datetimepicker2" />
    

    JS

    $('.datetimepicker').datetimepicker();    
    $('.datetimepicker').on('dp.change', function (e) {
        var nextElem = $(this).next('input.datetimepicker');
        if (nextElem.length > 0) {
            nextElem.data("DateTimePicker").minDate(e.date)
        }
    });
    

    Demo Fiddle

    【讨论】:

    • 如果有人真的需要销毁它怎么办,例如如果你使用它的淘汰绑定处理程序???
    • 猜猜破坏后也可以这样做。我没有尝试淘汰赛,但我尝试用破坏修改上面的小提琴,它似乎工作(Fiddle)。这也是一个旧答案,他们现在会更新他们的插件。
    【解决方案2】:

    你可以像这样销毁 datetimepicker:

    $('.datetimepicker').datetimepicker('remove');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-09
      • 1970-01-01
      • 2012-11-30
      • 1970-01-01
      • 2015-04-17
      • 1970-01-01
      相关资源
      最近更新 更多