<rich:calendar>客户端禁用周末</rich:calendar>

时间:2011-06-17 20:57:13

标签: javascript jquery jsf richfaces facelets

我关注xhtml文件vith rich:calendar,我试图禁用某些天using this example。但javascript函数永远不会被调用。我不知道为什么。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html ... >

<f:view locale="en">
  <script type="text/javascript">
    function isDayEnabled(day){
      var date = new Date(day.date);
      return (date.getDay() == 6); 
    }
    function getDisabledStyle(day){
      if (!isDayEnabled(day)) return 'rich-calendar-boundary-dates disabledDay';
    }
  </script>

<h:head>
 <style type="text/css">
  .disabledDay { background-color:gray; }
 </style>
</h:head>

<h:body> 
 <div id="workspace">
  <h:form id="form">
   <h:outputText value="Datum: " />
   <rich:calendar mode="ajax" id="calendar"
    isDayEnabled="isDayEnabled();" dayStyleClass="getDisabledStyle();">                   
   </rich:calendar>
....

你能帮帮我吗?

1 个答案:

答案 0 :(得分:5)

如展示示例所示,您需要指定唯一的函数 name 。删除括号。

<rich:calendar mode="ajax" id="calendar"
    isDayEnabled="isDayEnabled" dayStyleClass="getDisabledStyle">

或者当您实际使用RichFaces 4.0时,您需要检查different showcase site

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:a4j="http://richfaces.org/a4j"
    xmlns:rich="http://richfaces.org/rich">
    <h:outputStylesheet>
        .everyThirdDay {
            background-color: gray;
        }

        .weekendBold {
            font-weight: bold;
            font-style: italic;
        }
    </h:outputStylesheet>
    <h:outputScript>
        var curDt = new Date();
        function disablementFunction(day){
            if (day.isWeekend) return false;
            if (curDt==undefined){
                curDt = day.date.getDate();
            }
            if (curDt.getTime() - day.date.getTime() &lt; 0) return true; else return false; 
        }
        function disabledClassesProv(day){
            if (curDt.getTime() - day.date.getTime() &gt;= 0) return 'rf-cal-boundary-day';
            var res = '';
            if (day.isWeekend) res+='weekendBold ';
            if (day.day%3==0) res+='everyThirdDay';
            return res;
        }
    </h:outputScript>
    <rich:calendar dayDisableFunction="disablementFunction"
        dayClassFunction="disabledClassesProv" boundaryDatesMode="scroll" />
</ui:composition>

这些属性已重命名为dayDisableFunctiondayClassFunction