<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属性。换句话说,我想实现一个条件工具提示,只显示条件是否满足。有没有人知道实现这个目标的方法?
答案 0 :(得分:1)
为什么不使用rendered
代替disabled
?在这种情况下,当p:tooltip
更改其值时,您需要更新p:spinner
元素。使用Primefaces展示中的ajax spinner:
<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();");
然后在你的javscript代码中调用hideTooltip
:
function hideTooltip() {
$("tooltip").hide();
}
答案 1 :(得分: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" />