如何 enable/disable <p:inputtext> 取决于从 jsf 中的 <p:selectonemenu> 下拉列表中选择值

How to enable/disable <p:inputtext> depending on selecting values from<p:selectonemenu> dropdown in jsf

我们正在使用 JSF 2.2.4 和 PrimeFaces 5 开发一些表单域。

例如:公司和短代码是我的下拉列表,'If you have selected Other' 是我的输入文本字段。因此,如果用户从下拉列表中选择 'others',则应启用 'If you have selected Other' 文本字段,否则应将其禁用。 下面是我的代码:

<p:outputLabel value="Company Name and Shortcode:* " escape="true" />

<p:selectOneMenu  value="#{user.shipper}" effect="fold" required="true" id="selectone" autocomplete="off" 
     requiredMessage="#{error['form.shippershortcode']}"  widgetVar="selectWV"  >
        <f:selectItem itemLabel="----" itemDisabled="true"  />
        <f:selectItems value="#{shipperdropdown.shipperlist}"  />


</p:selectOneMenu>

    <p:outputLabel  value="If selected ‘Other’ above, please specify:" 
                 escape="true"  />
               <p:inputText  value="#{user.companyname}" 
              autocomplete="off"  id="company"  disabled="#{ user.shipper !='Others'}"  />

参见这个确切的例子:https://www.primefaces.org/showcase/ui/ajax/dropdown.xhtml

我认为您只需添加 p:selectOneMenu...

<p:ajax update="company" process="@this" />

像这样...

<p:selectOneMenu  value="#{user.shipper}" effect="fold" required="true" id="selectone" autocomplete="off" 
     requiredMessage="#{error['form.shippershortcode']}"  widgetVar="selectWV"  >
        <f:selectItem itemLabel="----" itemDisabled="true"  />
        <f:selectItems value="#{shipperdropdown.shipperlist}"  />
        <p:ajax update="company" process="@this" />
</p:selectOneMenu>