2012-01-16 47 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

相關問題