3

の一部として、datePatternの値が確定したコンポーネントを次のように使用しています。

<rich:calendar id="effectiveDate" 
value="#{itemBean.effectiveDate}" 
datePattern="EEEE, MM/dd/yyyy" />

したがって、フォームをロードすると、要求されたitemBeanからの既存のeffectiveDateがテキストフィールドに正しく表示されます。

問題:

  1. カレンダーアイコンをクリックすると、テキストフィールドの内容が消えます。したがって、カレンダーポップアップから何も選択しなかった場合、テキストフィールドは空のままになります。

  2. 日付を選択すると、次のように表示されます(例)。

EEEE、2012年11月19日したがって、曜日が正しく表示されません。

曜日(datePatternのEEEE部分)を指定しないと、上記の問題は発生しないことに注意してください。

選択した後の曜日を表示する特定の方法はありますか?

私はRichFaces4.2.2を使用しています。

ありがとう!

4

1 に答える 1

2

これはの既知の問題だと思います<rich:calendar>。それについてはよくわかりません。
ただし、これを試してください、

<rich:calendar id="effectiveDate" value="#{itemBean.effectiveDate}" onchanged="formatCalendarString(event, this);" datePattern="EEEE, MM/dd/yyyy" />

<head></head>タグの中にこれを入れてください。

<head>
    <script>
        function formatCalendarString(event, cal) {
            var date = new Date(Date.parse(event.rich.component.getSelectedDate()));
            var weekdays=new Array(7);
            weekdays[0]='Sunday';
            weekdays[1]='Monday';
            weekdays[2]='Tuesday';
            weekdays[3]='Wednesday';
            weekdays[4]='Thursday';
            weekdays[5]='Friday';
            weekdays[6]='Saturday';

            var day = weekdays[date.getDay()];
            if(typeof(day) !== 'undefined') {
              var formattedDate = (day + ', ') + event.rich.component.getSelectedDateString().substring(6);
              cal.value = formattedDate;
            }
        }
    </script>
</head>
于 2012-11-20T08:21:11.643 に答える