Javascript jQuery DatePicker上的Destroy方法删除了DatePicker,但当我重新实例化一个新的DatePicker时,以前选择的日期值仍然处于选中状态
我创建了一个演示,用一个名为Zebra Datepicker的jQuery库来显示我遇到的问题 斑马日期选择器文档: 斑马日期采集器GitHub: 我的演示演示了如何:Javascript jQuery DatePicker上的Destroy方法删除了DatePicker,但当我重新实例化一个新的DatePicker时,以前选择的日期值仍然处于选中状态,javascript,jquery,jquery-plugins,datepicker,Javascript,Jquery,Jquery Plugins,Datepicker,我创建了一个演示,用一个名为Zebra Datepicker的jQuery库来显示我遇到的问题 斑马日期选择器文档: 斑马日期采集器GitHub: 我的演示演示了如何: 创建一个DatePicker实例 选择一个日期值 销毁日期选择器实例 创建日期选择器的新实例 选择一个新的日期值 问题: 问题是,销毁日期选择器似乎不会销毁以前选择的日期值!因此,当实例化一个新的日期选择器时,它会选择上一个日期值而不是新值 我真的需要一些专家的帮助,因为这对我修复将项目任务记录加载到Modal DIV中的项
- 创建一个DatePicker实例
- 选择一个日期值
- 销毁日期选择器实例
- 创建日期选择器的新实例
- 选择一个新的日期值
destroy()
和在销毁旧日期选择器后重新实例化了一个新日期选择器李>
显然,销毁方法没有完全销毁,还是发生了其他事情?有没有办法解决这个问题
实际Zebra Datepicker库的destroy()方法的源代码:
位于此处
我发现了问题。您需要更改以下内容:
$('#updateDate').on('click', function(){
$('#task-modal-due-date-span').text('2015-05-24');
});
为此:
$('#updateDate').on('click', function(){
$('#task-modal-due-date-span').text('2015-05-24').val('2015-05-24');
});
原因是,当您重建新的DatePicker控件时,它查看的是span的值,而不是span的文本。(注意:通常您会将日期选择器附加到“input”元素,而不是“span”元素。)我没有解决方案,只有一条注释。。。这个问题的答案比你描述的要简单得多。无需销毁和重新创建选择器。只需执行以下操作:1.)加载页面,2.)单击范围以打开日期选择器,3.)在选择器中选择2015年5月30日,4.)单击按钮“将日期选择器SPAN val更新为2015-05-24,最后更新5。)再次单击SPAN以打开日期选择器。请注意,日期设置为5/30而不是5/24。@RajeevGoel谢谢你的评论,我想你可能误解了一点(可能是我的错),但我需要销毁它并重新设置,因为我将在模式中打开不同的数据。如果您按照我描述的步骤操作,您将看到它不会在该过程下更新,这是加载不同模态时必须采取的过程。我理解您需要销毁它并为您的场景重新构建日期选择器。我想说的是,即使您不销毁/重建日期选择器,您报告的bug也会复制(显示自己)。换句话说,你不必为了见证这个bug而破坏/重建DatePicker。这可能是我问题的解决方案,所以谢谢你!太好了,很高兴我能帮忙。请将我的帖子标记为已接受答案。我花了很多时间在这个上面。
$('#updateDate').on('click', function(){
$('#task-modal-due-date-span').text('2015-05-24').val('2015-05-24');
});