按下取消后,jquery对话框上的jquery datepicker将不会显示

时间:2012-01-16 09:25:43

标签: javascript jquery datepicker

我已经在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");
                }

由于

2 个答案:

答案 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