2011-09-22 79 views
0

我們的項目使用JSF1.2,Icefaces 1.8.2,jQuery UI組件datepicker(版本1.8.14)。問題與IE7(火狐很好)。以下順序會出現問題:選擇一個日期(例如,今天的幾天)。請注意,我們設置了從1991年到2012年的年份範圍。我們的業務邏輯是在JSF後臺打印文檔時使用該日期(在代碼中稱爲dateOfStudy)作爲標題,一旦完成,我將日曆inputext日期字段清空爲空。現在點擊datepicker圖標,當年顯示2011年,選擇任何一個月(例如回到Auguest,2011),問題發生在這裏:年份將改爲1991年,不能保持在2011年。jQuery datepicker在選擇月份時更改,IE7

如果我不觸摸該日期字段,則不會發生問題(不要清除,保留舊日期)。問題仍然會出現,即使我只是通過CSS將日期字體更改爲其他顏色(似乎只要我觸摸該字段,datepicker就會搞砸了)。如果您今天點擊一次,或關閉日期選擇器,則不會再發生問題,請再次打開。

似乎datepick需要一些初始化後我清除日期?

我附上了一些代碼。我有trid方法/選項像setDate,onChangeMonthYear,beforShowDay,無法解決。任何幫助表示讚賞!

<script type="text/javascript"> 
var jq = jQuery.noConflict(); 
jq(document).ready(function() { 
    jq("[id$=fmv]").live('click', function() { 
     jq(this).datepicker({ 
      showOn : 'focus', 
      changeMonth : true, 
      changeYear : true, 
      dateFormat : 'mm/dd/yy', 
      yearRange : '-20:+1', 
      showButtonPanel : true, 
      closeText : 'Close' 
     }).focus(); 
    }); 
}); 
</script> 

<ice:inputText id="fmv" 
         style="background-image:url  ('../../../jquery/images/calendar1.png'); 
         background-repeat:no-repeat;background-position:right;" 
         value="#{pItem.dateOfStudy}" 
         validator="#{pItem.validate}" 
         partialSubmit="true" 
         name="fmv"   
         valueChangeListener="#{pItem.dateChangeListener}"> 
         </ice:inputText> 

回答

0

當backbean清除或更改日曆inputText中的輸入文本時,我認爲這會導致焦點事件和日曆在IE7下混淆。我使用showOn焦點的原因是代碼位於表AJAX顯示區域中,所以在圖像按鈕上使用日曆顯示不起作用,因爲當AJAX更新返回時(jQuery日曆不會被調用),按鈕圖像不會顯示,迫使我使用showOn焦點。我終於在最後.focus()後添加以下刷新日曆線解決了今年變化問題:

jq(this).datepicker("setDate",jq("[id$=fmv]").datepicker("getDate")); 

事情現在工作正常。我不確定如何僅在backbean清理日曆日期時進行此調用,但性能似乎不錯。

相關問題