2012-01-16 32 views
1

我已经成功地创建jQuery的日期选择器上jQuery的对话框,通过load()函数加载。jquery对话框中的jQuery的日期选择器将不会显示取消后按

我能够通过重写对话框的开放活动,以实现它:

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"); 
       } 

感谢

回答

1

在你试图摧毁输入其中类是date-picker但日期选择器的关闭功能以前调用日期选择器创建后该类输入已更改为hasDatepicker所以尽量使用

$('input.hasDatepicker').datepicker("destroy"); 

编辑:

的日期选择器应该实现此close方法:

close: function (event, ui) { 
    $('input.hasDatepicker').datepicker("destroy"); 
    $(this).dialog("destroy"); 
    $(this).remove(); 
} 
+0

感谢您的答复,问题是Firefox的缓存。它现在(清除缓存后)显示,但我有另一个问题。当我点击一个日期时,它不填充文本框: - ?.点击对话框中的“取消”后会发生这种情况。然后重新打开对话框并选择一个日期。 – czetsuya 2012-01-16 10:11:55

+0

请在您的问题中更新您的代码。我没有足够的信息给你一个答案。我不确定我能帮你做这个顺便说一句。实际上,我遇到了同样的问题,唯一的解决方案是使用其他基于JS的日历... – 2012-01-16 10:39:28

+0

代码仍然相同我刚刚将css类日期选择器更改为hasDatepicker。我目前正在跟踪jquery-ui-1.8.16,稍后我可能会提供更多信息。 – czetsuya 2012-01-16 11:10:14

0

什么工作对我来说是 -

对话框里面,如果我有多个输入带班datepicker,然后

$(".datepicker").removeClass('hasDatepicker').datepicker(); 

基本上,要在再次初始化datepicker之前删除类hasDatepicker

我是版本jquery.ui.datepicker的1.8.18