Jsf 当我在展会前使用日历时,日历不工作
我正在使用primefaces处理JSF,当我需要禁用某些日期时,我在其中有一个日历字段,因此我使用了名为beforeShowDay的属性,但问题是当我使用该属性时,日历不会打开(不会弹出),但当我不使用beforeShowDay属性时,它会工作 我的代码是: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.
<!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" />