动态重新初始化或销毁 Bootstrap 日期选择器

Posted

技术标签:

【中文标题】动态重新初始化或销毁 Bootstrap 日期选择器【英文标题】:Re-initialize or destroy Bootstrap datepicker dynamically 【发布时间】:2014-06-28 05:47:54 【问题描述】:

有没有办法销毁 Bootstrap 日期选择器,动态更新它的选项,如格式、beforeShowDay 等? 我知道 jQuery UI datepicker 有一个 destroy 方法,但 Bootstrap 没有。它只有.('remove') 方法,但它不起作用。

我的目标是在更改输入时修改日期选择器的选项,例如:

$('#employee').change( function() 
   $('#date').datepicker('destroy'); //not working 'cause bootstrap hasnt a destroy method
   $('#date').hide();
);

然后我在输入变化时调用初始化函数:

function updateCalendar()
     $('#date').datepicker(
          format:"dd/mm/yyyy",
          beforeShowDay: updateC  //function that modifies the available days to show
     );    
 

【问题讨论】:

【参考方案1】:
$('.datepicker').datepicker('remove');

在删除之前确保您在 DOM 中有日期选择器对象。 在不删除的情况下,您可以隐藏日历并更改日期格式并进行更新。

$('.datepicker').datepicker('update');

【讨论】:

它在第一次初始化之前破坏了日期选择器。在检查了 ir 工作后 :) 谢谢! remove 已被弃用,请使用destroy 如果你使用的是最新版本的 jquery datepicker 而不是 $('.datepicker').datepicker('remove');使用 $('.datepicker').datepicker('destroy');【参考方案2】:

你可以使用:

$('#element_id').datepicker('destroy');

我只是在我的 ajax 调用之外调用了它。我的 ajax 调用是动态创建日期选择器。调用后我销毁了对象。

如下:

$.ajax( url: 'my_ business_functions.php',
     data: func_call: 'my_method_name', my_parameter: my_parameters,
     type: 'post',
     success: function(output) 
         //all my stuffs here
        $('#element_id').val(datepicker_value);
        
    );
    $('#element_id').datepicker('destroy');

这符合我的目的。

【讨论】:

【参考方案3】:

实际上我发现删除元素的 ID,克隆它,然后重新添加 ID 更多。

【讨论】:

是的,如果您在示例代码中向我们展示了您所做的具体工作,那将会更有帮助。【参考方案4】:

可能您正在使用带有输入 btn 组的日期选择器,我的意思是您带有日期图标按钮。所以,当你想销毁它并重新初始化时,你不应该只选择输入元素。您应该选择 div has "date-picker",然后删除并再次初始化。

【讨论】:

【参考方案5】:
forceParse: 1

在您的选择中。 每次都会解析输入的日期字段值。

【讨论】:

以上是关于动态重新初始化或销毁 Bootstrap 日期选择器的主要内容,如果未能解决你的问题,请参考以下文章

销毁或重新计算 CSS nth-child 选择器

bootstrap datetimepicker 重新初始化之后,日期为啥会变为1899年

Bootstrap Select - 在动态添加的元素上重新初始化

Bootstrap 日期选择器和 moment.js jalali 日历

更改后,日期选择器验证不起作用-BootStrap

如何使用 Datatables Jquery 插件销毁表并使用新的更新数据重新初始化同一个表