Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 当我在展会前使用日历时,日历不工作_Jsf_Jsf 2_Primefaces_Calendar - Fatal编程技术网

Jsf 当我在展会前使用日历时,日历不工作

Jsf 当我在展会前使用日历时,日历不工作,jsf,jsf-2,primefaces,calendar,Jsf,Jsf 2,Primefaces,Calendar,我正在使用primefaces处理JSF,当我需要禁用某些日期时,我在其中有一个日历字段,因此我使用了名为beforeShowDay的属性,但问题是当我使用该属性时,日历不会打开(不会弹出),但当我不使用beforeShowDay属性时,它会工作 我的代码是: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.

我正在使用primefaces处理JSF,当我需要禁用某些日期时,我在其中有一个日历字段,因此我使用了名为beforeShowDay的属性,但问题是当我使用该属性时,日历不会打开(不会弹出),但当我不使用beforeShowDay属性时,它会工作

我的代码是:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html <!--namespaces-->>
    <h:body>
      <ui:composition>
        <ui:define name="content">
        <script type="text/javascript">
          function tuesdaysAndFridaysDisabled(date)
          {
            var day = date.getDay();
            return [(day != 2 && day != 5), '']
          }
        </script>
        <h:form>
        <p:calendar id="leavefrom"  value="#{requestbean.leavefrom}" beforeShowDay="tuesdaysAndFridaysDisabled" effect="drop"  pattern="yyyy/dd/MM" required="true" >
            <p:ajax update="leaveto" event="dateSelect" />
        </p:calendar>      
         </h:form>                      
       </ui:define>
     </ui:composition>
    </h:body>
</html>

功能周二和周五禁用(日期)
{
var day=date.getDay();
返回[(天!=2和天!=5),“”]
}
对此有什么建议吗

return [(day != 2 && day != 5), '']
&
是Facelets中的一个特殊字符,应该导致Facelets编译器出现错误“”。我真的很惊讶你没有得到它。也许您的编辑器正在对其进行特殊处理,或者您实际上没有运行问题中所示的代码。在浏览器中检查JSF生成的HTML输出可以提供线索

在任何情况下,都应该将整个脚本放在
中<代码>]]>
块:

<h:outputScript>
 <![CDATA[
  function tuesdaysAndFridaysDisabled(date)
  {
    var day = date.getDay();
    return [(day != 2 && day != 5), '']
  }
 ]]>
</h:outputScript>

然后您的代码片段开始对我起作用。

检查浏览器控制台。是否出现任何javascript错误?您是否在某些javascript函数集中设置了断点,因此日历不会弹出?您修改了primefaces日历中的一些CSS定义了吗?我在控制台中没有看到任何错误,问题是,我在这里使用的是其他用途,这是否会发生任何事情,主要问题是javascript fn没有被调用删除
ui:composition
ui:define
。逐步将页面缩小到最小,直到找到问题的根源。出于测试目的,也删除
p:ajax
。检查Primefaces生成的javascript代码是否包含字符串
presshowday
。是的,我得到了错误,但由于这个问题的错误,我只是从记事本中复制了它,而不是从我的
IDE
中复制的。这是y n。非常感谢你,它对我来说是盲目的,但是我不明白
块的用途是什么。不管它是否将
JS
格式更改为普通代码,我们都欢迎。有关详细信息,请单击“我的答案”中错误消息后面的链接。
<h:outputScript name="functions.js" />