JSF onclick单选按钮隐藏/显示文本框

时间:2017-12-14 07:57:18

标签: html jsf

我想实现这样的功能,当我选择一个单选按钮时,它必须显示一个文本框,否则它应该处于隐藏状态。我写了这样的代码

          <tr>
            <th><label for="selection">Register as ::</label></th>
            <td>        <h:selectOneRadio id="selection" value="#{LoginBean.role}" label="Action" required="true">
                            <f:selectItem itemValue="Customer" itemLabel="Customer" />
                            <f:selectItem itemValue="Manager" itemLabel="Manager" />
                            <p:ajax process="console" update="@form" />
                        </h:selectOneRadio>
            </td>
          </tr>

          <tr>
            <th><h:outputLabel value="Enter your Fee ::" rendered="#{LoginBean.role eq 'Manager'}"></h:outputLabel></th>
            <td><h:inputText id="fee" value="#{LoginBean.fee}" rendered="#{LoginBean.role eq 'Manager'}" required="true" requiredMessage="Fee is required." class="form-control"  a:placeholder="200.00" ></h:inputText></td>
          </tr>

在这里,如果我选择Manager单选按钮,它应该显示outputLabel和inputeText。 Bean Class中有getter和setter。

有什么不对吗?

1 个答案:

答案 0 :(得分:0)

而不是代码中的输入行, 我建议你把它放在另一个表格中,使用render =&#34;#{LoginBean.isManager}&#34;,取出你在h标签中渲染的两个表格。 复制此表单时没有任何子标记,此表单附带render =&#34;#{!LoginBean.isManager}&#34;
在你的Bean中,使用getter setter声明new boolean isManager。 在处理您的无线电选择表单时,Bean会根据您的选择将isManager设置为false或true,并根据您的isManager渲染表单。 我用这种方式快速添加&#34;编辑&#34;形成。它没有POSTBACK。我希望这个对你有用!
PS:您可能只需要将渲染设置为tr标签而不是h标签。