填写其他输入时禁用一个输入

时间:2015-04-14 12:13:25

标签: jsf

如果输入p:日历值,我想禁用其他输入标记

  <p:calendar id="someDate" value=.... binding="#{bind}" />

例如禁用p:selectOneMenu但这会永久禁用它。

 <p:selectOneMenu id="selectManu" value=... disabled="#{bind!=null}" >

如果p:calendar具有值?

,如何禁用它

1 个答案:

答案 0 :(得分:2)

让源组件ajax-更新所需事件的目标组件,并让目标组件的disabled属性检查源组件的value是否为not empty

所以,

<p:calendar ... value="#{bean.date}">
    <p:ajax event="valueChange" update="menu" />
    <p:ajax event="dateSelect" update="menu" />
</p:calendar>
...
<p:selectOneMenu id="menu" ... disabled="#{not empty bean.date}" />

此构造中不需要binding。如果确实想要使用它,那么您应该检查组件的value属性,而不是组件本身(显然从不null)。

<p:calendar binding="#{calendar}" ...>
    <p:ajax event="valueChange" update="menu" />
    <p:ajax event="dateSelect" update="menu" />
</p:calendar>
...
<p:selectOneMenu id="menu" ... disabled="#{not empty calendar.value}" />

如果您想了解有关binding的更多信息,请访问How does the 'binding' attribute work in JSF? When and how should it be used?