当选择月份时,jQuery datepicker年份改变,IE7

时间:2011-09-22 20:46:36

标签: jquery-ui jsf internet-explorer-7 datepicker

我们的项目使用JSF1.2,Icefaces 1.8.2,jQuery UI组件datepicker(veresion 1.8.14)。 IE7的问题(Firefox很好)。问题将按以下顺序发生:选择一个日期(例如,今天的几天)。注意我们设置了1991年到2012年的年份范围。我们的业务逻辑是打印一个文档使用日期(在代码中,称为dateOfStudy)作为标题,一旦完成,在JSF后面的bean中,我将日历inputext日期字段清空为null。现在再次点击datepicker图标,年份显示2011年,选择任何上个月(例如回到Auguest,2011),问题发生在这里:年份将改为1991年,不能保持在2011年。

如果我不触摸该日期字段,则不会发生此问题(请勿清除,保留旧日期)。即使我只是通过CSS将日期字体更改为其他颜色,问题仍会出现(似乎每当我触摸该字段时,datepicker就会搞砸了)。如果您今天点击一次,或关闭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>

1 个答案:

答案 0 :(得分:0)

当backbean清除或更改日历inputText中的输入文本时,我认为会导致焦点事件,并且日历会在IE7下混淆。我使用showOn焦点的原因是代码在表AJAX显示区域中,因此使用日历显示图像按钮不起作用,因为当AJAX更新返回时(jQuery日历不会被调用),按钮图像将不会显示强迫我使用showOn焦点。我终于通过在最终的.focus()之后添加以下刷新日历行来解决今年的更改问题:

jq(this).datepicker("setDate",jq("[id$=fmv]").datepicker("getDate"));
现在工作正常的事情。我不知道如何在backbean清理日历日期时如何进行此调用,但性能似乎没问题。