我已经在jquery的对话框上成功创建了一个jquery datepicker,该对话框是通过load()
函数加载的。
我能够通过覆盖对话框的开放事件来实现它:
open: function (event, ui) {
if ($('input.date-picker').length > 0) {
$('input.date-picker').datepicker({
showOn: "button",
buttonImage: "/Content/images/calendar.gif",
buttonImageOnly: true
});
$('input.date-picker').datepicker("refresh");
}
},
按下图像按钮后,日期选择器成功显示。但是我注意到一些奇怪的事情,当我打开对话框时,单击取消然后再次打开对话框并单击日历图像按钮,日期选择器将不会显示。
可能会有帮助,我也会覆盖对话框的关闭事件:
close: function (event, ui) {
$('input.date-picker').datepicker("destroy");
$(this).dialog("destroy");
}
由于
答案 0 :(得分:1)
在close函数中,您尝试在类为date-picker
的输入上销毁datepicker但在之前调用datepicker创建之后,输入的类已更改为hasDatepicker
,因此请尝试使用
$('input.hasDatepicker').datepicker("destroy");
编辑:
datepicker应该实现此close
方法:
close: function (event, ui) {
$('input.hasDatepicker').datepicker("destroy");
$(this).dialog("destroy");
$(this).remove();
}
答案 1 :(得分:0)
对我有用的是 -
在对话框内,如果我有多个类datepicker
的输入,那么
$(".datepicker").removeClass('hasDatepicker').datepicker();
基本上,要在再次初始化hasDatepicker
之前删除课程datepicker
。
我在 jquery.ui.datepicker的版本1.8.18