动态重新初始化或销毁 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 日期选择器的主要内容,如果未能解决你的问题,请参考以下文章
bootstrap datetimepicker 重新初始化之后,日期为啥会变为1899年
Bootstrap Select - 在动态添加的元素上重新初始化