【问题标题】:Hide/Show form depending on selectOneMenu value change根据 selectOneMenu 值更改隐藏/显示表单
【发布时间】:2011-12-27 08:17:42
【问题描述】:

我有一个带有<h:selectOneMenu> 的页面,我想根据selectOneMenu 的所选值显示一些字段或其他字段。这可能吗?如果可以,怎么做?

【问题讨论】:

    标签: jsf-2 drop-down-menu hide show


    【解决方案1】:

    是的,这肯定是可能的。只需将下拉列表的值绑定到要显示/隐藏的组件的rendered 属性。这是一个启动示例。

    <h:form>
        <h:selectOneMenu value="#{bean.item}">
            <f:selectItem itemLabel="Select..." />
            <f:selectItem itemValue="one" />
            <f:selectItem itemValue="two" />
            <f:selectItem itemValue="three" />
            <f:ajax render="@form" />
        </h:selectOneMenu>
    
        <h:panelGroup rendered="#{bean.item == 'one'}">
            <p>This will be shown if the selected item equals to "one".</p>
        </h:panelGroup>
    
        <h:panelGroup rendered="#{bean.item == 'two'}">
            <p>This will be shown if the selected item equals to "two".</p>
        </h:panelGroup>
    
        <h:panelGroup rendered="#{bean.item == 'three'}">
            <p>This will be shown if the selected item equals to "three".</p>
        </h:panelGroup>
    </h:form>
    

    &lt;h:panelGroup&gt; 只是示例。它可以是每个 JSF HTML 组件,例如 &lt;h:inputText&gt; 甚至是另一个 &lt;h:selectOneMenu&gt;

    另见:

    【讨论】:

    • 我一直在处理这个问题,我的 selectOneMenu 中有一个选项,我想在其中显示一个 来列出文件在一个目录上,我已经有了树的代码,并对其进行了隔离测试,但是当我将相同的代码放在其中一个选项中时,它不会被渲染。
    • 我可以在表单中嵌套表单吗?我的意思是,将&lt;h:panelGroup&gt; 替换为&lt;h:form&gt;
    • 不,这在 HTML 中是无效的,所以你也不应该在 JSF 中这样做。
    • 也许这就是它不渲染的原因。所以我只添加了没有表单标签的 tree2 代码?
    • 只要不嵌套表单。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-02
    • 1970-01-01
    • 2013-08-02
    相关资源
    最近更新 更多