用于p:inputNumber的Primefaces工具提示

时间:2017-08-30 14:05:03

标签: primefaces jquery-selectors tooltip jsf-2.2

我正在使用Primefaces'工具提示组件,我正在寻找与p:inputNumber字段一起使用的正确方法。

<p:inputNumber id="ctrl" title="Help for inputNumber" />
<p:tooltip id="toolTip"  for="ctrl" showEvent="focus" hideEvent="blur"/>                 
<p:inputText id="ctrl2"  title="Help for inputText"/>
<p:tooltip id="toolTip2" for="ctrl2" showEvent="focus" hideEvent="blur"/> 

p:inputText示例正在运行,而p:inputNumber则不然。我已经发现问题是,p:inputNumber呈现为<input>嵌套在<span>标记中。 <span>标记获取id="ctrl"属性,<input>id="ctrl_input"属性。

所以我将工具提示的选择器更改为for="@(#ctrl_input)",这实际上有效:

<p:inputNumber id="ctrl" title="Help for inputNumber" />
<p:tooltip id="toolTip"  for="@(#ctrl_input)" showEvent="focus" hideEvent="blur"/>    

现在我的问题是,我使用嵌套在复合组件中的许多p:inputNumber字段来更改<input>标记的ID,因此我无法坚持@(#ctrl_input)选择。我想出的唯一方法是添加父h:panelGroup并将其客户端ID传递给<input>标记。然后我可以按如下方式选择<input>

<h:panelGroup id="ctrlGroup">
    <p:inputNumber id="ctrl3" title="Help for inputNumber" a:tooltipId="#{component.parent.clientId}"/>     
    <p:tooltip id="toolTip3" for="@(input[tooltipId='#{component.parent.clientId}']" showEvent="focus" hideEvent="blur"/>
</h:panelGroup>

所以这也有效,但是有更优雅的方式来选择正确的<input>吗?

0 个答案:

没有答案