在p:日历中禁用特定日期?

时间:2013-11-21 06:40:22

标签: javascript jsf-2 primefaces calendar

我正在使用JSF中的Primefaces,我只是想在日历中禁用所有星期日,

我该怎么做,

  • 正如我提到的网站,我得到了一个点,我们可以使用beforeShowDay来实现它,但我不知道如何使用它。
  • Primefaces user guide第10页解释了这一点,但我不明白他们想说什么。

    <p:calendar value="#{dateBean.date}" beforeShowDay="tuesdaysAndFridaysOnly" />
    
    function tuesdaysAndFridaysDisabled(date)
    {
      var day = date.getDay();
      return [(day != 2 && day != 5), '']
    }
    

在上面的代码中,他们从tuesdaysAndFridaysDisabled调用了beforeShowDay函数,但我的问题是

  • 他们将函数名称调用为tuesdaysAndFridaysOnly,但它将如何影响函数tuesdaysAndFridaysDisabled

它也不起作用..如何实现它以及那里发生的事情......

1 个答案:

答案 0 :(得分:3)

这是Primefaces文档中的错误。应该调用它们的函数tuesdaysAndFridaysDisabled而不是tuesdaysAndFridaysOnly,这是一个javascript函数,您可以调用它来自定义日期。

所以正确的源代码看起来像

<p:calendar value="#{dateBean.date}" beforeShowDay="tuesdaysAndFridaysDisabled" />

在函数tuesdaysAndFridaysDisabled中,您可以使用提供的参数日期执行任何操作。在这种情况下,周二(2)和周五(5)被禁用。

function tuesdaysAndFridaysDisabled(date)
{
  var day = date.getDay();
  return [(day != 2 && day != 5), '']
}

文档说明:

  

该函数返回一个包含两个值的数组,第一个是flag to   指示日期是否显示为已启用且第二个参数为   要添加到日期单元格的可选样式类。

如你所见。如果date是星期二或星期五,则返回数组中的第一个参数为false,这意味着这些天不会在p:calendar中选择。

<强>更新 您可以在此处找到类似的问题:Disable specific dates on p:calendar