Jsf PrimeFaces日历已禁用,但不';I don’我看起来不像残疾人

Jsf PrimeFaces日历已禁用,但不';I don’我看起来不像残疾人,jsf,primefaces,calendar,Jsf,Primefaces,Calendar,我正在使用PrimeFaces6.1 widgetVar禁用各种页面元素。我在页面上有几种不同类型的元素。当它们都被禁用时,p:calendar是唯一看起来没有被禁用的元素 <p:calendar id="revision-date-from" value="#{search.revisionDateFrom}" pattern="dd/MM/yyyy" mask="true" />---<p:calendar id="revision-date-to" value="#{se

我正在使用PrimeFaces6.1 widgetVar禁用各种页面元素。我在页面上有几种不同类型的元素。当它们都被禁用时,p:calendar是唯一看起来没有被禁用的元素

<p:calendar id="revision-date-from" value="#{search.revisionDateFrom}" pattern="dd/MM/yyyy" mask="true" />---<p:calendar id="revision-date-to" value="#{search.revisionDateTo}" pattern="dd/MM/yyyy" mask="true" />
---
我被要求为InternetExplorer11进行开发

还有其他人有这个问题吗?或者可能知道如何解决这个问题?我想,我总是可以用样式来改变颜色。但PrimeFaces会有这样一个异常值似乎很奇怪


我能够解决这个问题:通过研究,我了解到禁用的PrimeFaces元素使用一个名为“ui状态禁用”的样式类来指定不透明度的百分比。检查日历元素时,我发现从未分配“ui状态已禁用”类。所以,为了解决我的问题,我在样式表中重写了类。嗯,我不需要这样做,但我想控制我所有的禁用元素

.ui-state-disabled {
    opacity: 0.45;
    filter: Alpha(Opacity=45);
    cursor: default !important;
}
使用我的widgetVar禁用我需要添加类:

PF('widget_date').disable();
PF('widget_date').getJQ().addClass('ui-state-disabled');
    PF('widget_date').enable();
    PF('widget_date').getJQ().removeClass('ui-state-disabled');
然后,要启用并删除该类,请执行以下操作:

PF('widget_date').disable();
PF('widget_date').getJQ().addClass('ui-state-disabled');
    PF('widget_date').enable();
    PF('widget_date').getJQ().removeClass('ui-state-disabled');

此解决方案非常有效。

为什么要使用客户端
widgetVar
禁用字段?尽管如此,您可以在每个字段上使用
disabled
属性!我两方面都考虑过。我正在处理的页面有很多基于复选框选择(14个复选框)组合的页面元素的启用和禁用(总共28个元素)。在客户端执行此操作降低了实现的复杂性,而且我认为会更有效,因为调用不会返回到服务器。我解决了此问题,我将在下面进行解释。请记住,禁用客户端会打开一个安全漏洞。客户端可以启用它!!!好的,你用的是什么PF版本?(下次一定要从一开始就提到这一点)。如果是最新的,请在Github中提交一个问题谢谢你Kukelje。这是一个疏忽。我用我正在使用的版本编辑了我的原稿,并将按照您的建议归档。