3

作为 的一部分,我正在使用具有确定的 datePattern 值的组件,如下所示:

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

因此,当我加载表单时,来自请求的 itemBean 的现有有效日期会正确显示在文本字段中。

问题:

  1. 单击日历图标时,文本字段的内容将消失。因此,如果我没有从日历弹出窗口中选择任何内容,那么文本字段将保持为空。

  2. when the date is selected it is displayed like that (for example):

EEEE,2012 年 11 月 19 日所以工作日显示不正确。

请注意,如果不指定工作日(datePattern 的 EEEE 部分),上述问题均不会发生。

选择后是否有一些特定的方式来显示工作日?

我在 RichFaces 4.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 回答