【问题标题】:PrimeFaces Calendar disabled, but doesn't look disabledPrimeFaces 日历已禁用,但看起来并未禁用
【发布时间】:2017-10-23 17:48:22
【问题描述】:

我正在使用 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" />

我需要为 Internet Explorer 11 进行开发。

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

Click here to see the image of elements p:calendar, p:inputText and p:selectOneMenu together

【问题讨论】:

  • 您为什么使用客户端widgetVardisable 字段?不过,您可以在每个字段上使用disabled 属性!
  • 我考虑了两种方式。我正在处理的页面有很多基于复选框选择(14 个复选框)的组合启用和禁用页面元素(总共 28 个元素)。做这个客户端降低了实现的复杂性,我想会更有效率,因为调用不会回到服务器。
  • 我解决了这个问题,我会在下面解释。
  • 请记住,禁用客户端会打开一个安全漏洞。客户可以开启!​​!!

标签: jsf primefaces calendar


【解决方案1】:

我能够解决这个问题:经过研究,我了解到禁用的 PrimeFaces 元素使用一个名为“ui-state-disabled”的样式类来分配不透明度的百分比。检查日历元素,我发现从未分配过“ui-state-disabled”类。因此,为了解决我的问题,我覆盖了样式表中的类。好吧,“不需要”这样做,但我想控制我所有禁用的元素不透明度。

.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版本? (下次总是从一开始就提到)。如果是最新的,请在 github 中提出问题
  • 谢谢库克列。那是一个疏忽。我使用我正在使用的版本编辑了我的原始版本,并将按照您的建议提交问题。
猜你喜欢
  • 1970-01-01
  • 2012-10-09
  • 1970-01-01
  • 1970-01-01
  • 2021-06-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多