根据另一个输入组件的值禁用/启用JSF输入组件

use*_*018 4 jsf

我有两个单选按钮:

<h:selectOneRadio value="#{bean.choice}">
    <f:selectItem itemValue="yes" itemLabel="YES" />
    <f:selectItem itemValue="no" itemLabel="NO" />
</h:selectOneRadio>

<p:calendar value="#{bean.date}" />
Run Code Online (Sandbox Code Playgroud)

如果选择"否"按钮,则应禁用日历的文本输入字段(灰色).我怎样才能做到这一点?

Bal*_*usC 12

只需让目标输入组件的disabled属性检查源输入的值,并<f:ajax>在源组件中使用它来更新目标组件.它将导致disabled重新评估该属性.不需要值更改侦听器或其他属性.

<h:selectOneRadio value="#{bean.choice}">
    <f:selectItem itemValue="yes" itemLabel="YES" />
    <f:selectItem itemValue="no" itemLabel="NO" />
    <f:ajax render="calendar" />
</h:selectOneRadio>

<p:calendar id="calendar" value="#{bean.date}" disabled="#{bean.choice eq 'no'}" />
Run Code Online (Sandbox Code Playgroud)

也可以看看: