1
<p:spinner id="amount" 
           min="0" 
           max="#{bean.availableAmount}" 
           value="#{bean.amount}" />
<p:tooltip for="amount" 
           showEvent="focus" 
           hideEvent="blur" 
           disabled="#{bean.amount lt bean.maxAmount}" 
           value="Maximum amount has been reached" />

我正在寻找一种方法来实现上面示例中的 disabled 属性之类的东西。换句话说,我想实现一个仅在满足条件时才显示的条件工具提示。有谁知道实现这一目标的方法?

4

2 回答 2

1

你为什么不使用rendered而不是disabled?在这种情况下,您需要在元素值更改p:tooltip时更新元素p:spinner。使用Primefaces 展示中的ajax 微调器:

<p:spinner id="amount" min="0" max="#{bean.availableAmount}" value="#{bean.amount}">  
  <p:ajax update="tooltip" process="@this" />  
</p:spinner>

<p:tooltip id="tooltip"
           for="amount" 
           showEvent="focus" 
           hideEvent="blur" 
           rendered="#{bean.amount lt bean.maxAmount}" 
           value="Maximum amount has been reached" />

更新(阅读您的评论后):

如果要隐藏工具提示,可以在响应返回到浏览器时发出命令从服务器端执行 javascript 代码:

RequestContext context = RequestContext.getCurrentInstance();
context.execute("hideTooltip();");

然后调用hideTooltip您的 javscript 代码:

function hideTooltip() {
  $("tooltip").hide();
}
于 2013-07-25T20:15:11.030 回答
1

您还可以使用工具提示的小部件在客户端实现此目的:

<p:spinner id="amount" min="0" max="#{bean.availableAmount}" value="#{bean.amount}">  
  <p:ajax oncomplete="myTooltip.hide()" process="@this" />  
</p:spinner>

<p:tooltip id="tooltip"
       for="amount" 
       showEvent="focus" 
       hideEvent="blur" 
       widgetVar="myTooltip"
       value="Maximum amount has been reached" />
于 2013-07-25T21:36:16.217 回答